如何根据 R 中的分组值列出列中的行值?

How to list row values in a column based on grouping value in R?

他,

我有一个输入文件,其中一列带有基因 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

我尝试过类似于的方法,但没有成功。

提前感谢您的建议! :)

我建议下一个 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