【问题标题】:How to list row values in a column based on grouping value in R? [duplicate]如何根据 R 中的分组值列出列中的行值? [复制]
【发布时间】:2020-08-24 22:42:30
【问题描述】:

嘿嘿,

我有一个输入文件,该文件有一列带有基因 id,然后有一列带有 GO 术语,每个基因有多行(从 1 到 >20 的任意位置)。我需要生成的格式对于每个唯一的基因 ID 有一行,第二列中的 GO 术语用分号分隔。

我的数据:

GeneID    GO
am1001    190909
am1001    600510
am1002    500050
am1002    432323
am1002    100209

想要的输出:

GeneID    GO_list
am1001    190909; 600510
am1002    ​50050; 432323; 100209

我尝试过类似于How to create new columns in a data.frame based on row values in R? 的方法,但没有成功。

提前感谢您的建议! :)

【问题讨论】:

    标签: r group-by dplyr transform splitstackshape


    【解决方案1】:

    我建议下一个base R 方法:

    #Data
    df <- structure(list(GeneID = c("am1001", "am1001", "am1002", "am1002", 
    "am1002"), GO = c(190909L, 600510L, 500050L, 432323L, 100209L
    )), class = "data.frame", row.names = c(NA, -5L))
    

    代码:

    #Aggregation
    aggregate(GO~GeneID,data=df,FUN = function(x) paste0(x,collapse = '; '))
    

    输出:

      GeneID                     GO
    1 am1001         190909; 600510
    2 am1002 500050; 432323; 100209
    

    【讨论】:

      猜你喜欢
      • 2016-09-28
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-19
      • 2021-08-26
      相关资源
      最近更新 更多