r - 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() ,但没有得到它。
请指导。
谢谢。
解决方案
这应该有效:
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 = " | "))
推荐阅读
- git - Git - 如果我从父分支中删除提交,它是否也会从提交在父分支上时创建的子分支中消失?
- html - Angular ::ng-deep {} 在 *.component.css ng5-slider 中不起作用
- asp.net-core - 在代码部分的组件中使用 foreach 循环中的当前项
- tensorflow - Tensorflow Keras 在训练和验证中的类别数量不同
- reactjs - 如何在子反应组件中拥有反应路由器链接
- javascript - 无法将字段添加到参数对象
- c - 与患者年龄相关的疾病病例数
- java - java JVM字节码表示法,注释语法。调用动态
- stata - 如何在Stata中使用舍入到小数点后两位来创建相关矩阵?
- angular - Angular2异步调用值未定义