首页 > 解决方案 > R:如何根据单列中的唯一值组合来自多列的重复行并通过|合并这些唯一值?

问题描述

我有以下数据框:

gene    gene_name   source  chromosome  details
1       a           A           2       01; xyz
1       a           A           2       02; ijk
2       b           B           3       03; efg
2       b           C           3       03; efg
3       c           D           4       04; lmn
3       c           D           4       05; opq
3       c           D           4       06; rst
4       NA          10          6       NA
4       NA          11          6       NA

我想得到以下输出:

gene    gene_name   source  chromosome  details
1       a           A       2           01; xyz | 02;ijk
2       b           B, C    3           03; efg
3       c           D       4           04; lmn | 05; opq | 06; rst
4       NA          10, 11  6           NA | NA

我尝试以不同的方式使用 aggregate() 和 group_by() ,但没有得到它。

请指导。

谢谢。

标签: rdataframerstudiorows

解决方案


这应该有效:

df %>%
  group_by(gene, gene_name, source, chromosome) %>%
  summarise(details = paste(details, collapse = " | "))

我在 iris 上运行了以下内容,得到的结果与您描述的相似

iris %>%
  group_by(Sepal.Length, Sepal.Width, Petal.Length, Species) %>%
  summarise(Petal.Width = paste(Petal.Width, collapse = " | "))

推荐阅读