pivot_longer:从多个列创建多个不同类型的列

问题描述 投票:0回答:0

我想通过创建 3 个额外的列来创建

pivot_long
我的数据框;
mean_stat
,
med_stat
&
sample
填入相应的值。

这是我的策略

  1. mean_stat
    来自
    mean_stat.x, mean_stat.y, mean_stat
  2. med_stat
    来自
    med_stat.x, med_stat.y, med_stat
  3. sample
    来自
    sample.x, sample.y, sample

请问我有办法做到这一点吗?我尝试了下面的代码,但不断出错。

> data_head %>% pivot_longer(col= !c("seqnames",
+                             "start","end","strand",
+                             "pos","mgi_symbol",
+                             "ensembl_transcript_id_version",
+                             "ensembl_gene_id_version"), 
+                             names_to = c("mean_stat.x", "mean_stat.y","mean_stat",
+                             "med_stat.x", "med_stat.y", "med_stat",
+                             "sample.x","sample.y","sample"),
+                             values_to=c("mean_stat","med_stat","sample"))
Error in `build_longer_spec()`:
! If you supply multiple names in `names_to` you must also supply one of `names_sep` or `names_pattern`.
Run `rlang::last_error()` to see where the error occurred.

数据看起来像这样

> structure(as.data.frame(data_head))
pivot_longer(col= !c("seqnames",
                   seqnames   start     end strand     pos mean_stat.x   med_stat.x sample.x
1     chr6 6862382 6862382      + 6862382 0.197929599 0.0165784050      P_1
2     chr6 6862382 6862382      + 6862382 0.197929599 0.0165784050      P_1
3     chr6 6862383 6862383      - 6862383 0.199321381 0.1455393145      P_1
4     chr6 6862383 6862383      - 6862383 0.199321381 0.1455393145      P_1
5     chr6 6862427 6862427      + 6862427 0.004064337 0.0007042593      P_1
6     chr6 6862427 6862427      + 6862427 0.004064337 0.0007042593      P_1
  mgi_symbol ensembl_transcript_id_version ensembl_gene_id_version  mean_stat.y
1       Dlx6          ENSMUST00000160937.8   ENSMUSG00000029754.13 0.0007648522
2       Dlx6          ENSMUST00000171311.7   ENSMUSG00000029754.13 0.0007648522
3       Dlx6          ENSMUST00000160937.8   ENSMUSG00000029754.13 0.3942963279
4       Dlx6          ENSMUST00000171311.7   ENSMUSG00000029754.13 0.3942963279
5       Dlx6          ENSMUST00000160937.8   ENSMUSG00000029754.13 0.0037582127
6       Dlx6          ENSMUST00000171311.7   ENSMUSG00000029754.13 0.0037582127
    med_stat.y sample.y   mean_stat     med_stat sample
1 0.0007648522      P_2 0.221987652 0.0079923415    P_3
2 0.0007648522      P_2 0.221987652 0.0079923415    P_3
3 0.3942963279      P_2 0.352667338 0.2562769232    P_3
4 0.3942963279      P_2 0.352667338 0.2562769232    P_3
5 0.0037582127      P_2 0.008925996 0.0007521775    P_3
6 0.0037582127      P_2 0.008925996 0.0007521775    P_3
r tidyverse pivot-table reshape2
© www.soinside.com 2019 - 2024. All rights reserved.