我有一个非常长的数据框,其中近56列中的1列具有许多不同的值,而其余数据则随第一列ID更改。这里有个例子:
ID chrom left right ref_seq var_type zygosity transcript_name
0 chr1 1590327 1590328 a SNP Hom NM_033486
0 chr1 1590327 1590328 a SNP Hom NM_033487
0 chr1 1590327 1590328 a SNP Hom NM_033488
0 chr1 1590327 1590328 a SNP Hom NM_033489
0 chr1 1590327 1590328 a SNP Hom NM_033492
0 chr1 1590327 1590328 a SNP Hom NM_033493
1 chr1 1590526 1590527 g SNP Hom NM_033486
1 chr1 1590526 1590527 g SNP Hom NM_033487
1 chr1 1590526 1590527 g SNP Hom NM_033488
1 chr1 1590526 1590527 g SNP Hom NM_033489
1 chr1 1590526 1590527 g SNP Hom NM_033492
期望的结果是将任何重复的值连接成逗号分隔的字符串,但仅保留一次ID,如下所示。
ID chrom left right ref_seq var_type zygosity transcript_name
0 chr1 1590327 1590328 a SNP Hom NM_033486NM_033487,NM_033488,NM_033489,NM_033492,NM_033493
1 chr1 1590526 1590527 g SNP Hom NM_033486,NM_033487,NM_033488,NM_033489,NM_033492
我已经搜索了类似的问题,但以下解决方案到目前为止都没有起作用;相反,它们给我返回了一个零行数据框。
df2 <- aggregate(df[,8], df[,-8], FUN = function(X) paste(unique(X), collapse=", "))
- Dave Gruenewald