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