用R对非数值数据集进行叠加

用R对非数值数据集进行叠加,r,stack,R,Stack,我有一个需要堆叠的GO术语的data.frame。 df看起来像: > head(GO_info) V2 Gene1 GO:0003674,GO:0005215,GO:0005216,GO:0005575 Gene2 GO:0000462,GO:0002181,GO:0003674,GO:0003735 但我希望这个数据帧堆叠起来,包括标题“ind”和“value”,如: 我尝试使用: GO_info2 <- stack(GO_info) GO_info2 数据 d

我有一个需要堆叠的GO术语的data.frame。 df看起来像:

> head(GO_info)
      V2 
Gene1 GO:0003674,GO:0005215,GO:0005216,GO:0005575
Gene2 GO:0000462,GO:0002181,GO:0003674,GO:0003735
但我希望这个数据帧堆叠起来,包括标题“ind”和“value”,如:

我尝试使用:

GO_info2 <- stack(GO_info)
GO_info2
数据

dft感谢您的评论,但它似乎还不起作用。我试着实现它:
GOterm%separate(V2,into=c('ind','values'),sep='\\s')%%>%GOterm=new stacked datafile和GO_info我的旧df和1000个基因ID。我得到以下警告:警告消息:预计2件。在24140行[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,…]中填入
NA`的缺失片段。它只是将我的基因名(如“TRINITY_DN100009_c0_g1”)替换为值1,2,3,4。我在>中看到(GO_info)是一个小错误。列1有一个名为V1的标题,所以它看起来像:V1 V2 Gene1 GO:0003674,GO:0005215,GO:0005216,GO:0005575 Gene2 GO:000462,GO:0002181,GO:0003674,GO:0003735,因为a的代码不起作用。Suliman现在我按如下方式尝试:
GOterm如果有两列V1和V2,那么您可以执行
df%>%分隔的行(V2,sep=,'))
。然后使用
colnames(df)更改列名称
GO_info2 <- stack(GO_info)
 library(tidyr)
 df %>% separate(V2,into = c('ind','values'),sep = '\\s') %>%  #separate V2 to inds and values at space \\s
        separate_rows(values,sep = ',')                        #separate values to multiple rows at ','

      ind     values
  1 Gene1 GO:0003674
  2 Gene1 GO:0005215
  3 Gene1 GO:0005216
  4 Gene1 GO:0005575
  5 Gene2 GO:0000462
  6 Gene2 GO:0002181
  7 Gene2 GO:0003674
  8 Gene2 GO:0003735
 df<-read.table(text="
           V2 
           'Gene1 GO:0003674,GO:0005215,GO:0005216,GO:0005575'
           'Gene2 GO:0000462,GO:0002181,GO:0003674,GO:0003735'
           ",header=TRUE)