r - 查找数据框中某些列重复的行,然后合并其他列中的元素
问题描述
我有一个数据框,我想找到 A 列和 B 列都重复的行,然后通过将 C 列中的元素组合在一起来组合这些行。
我的例子:
DF = cbind.data.frame(A = c(1, 1, 2, 3, 3),
B = c("a", "b", "a", "c", "c"),
C = c("M", "N", "X", "M", "N"))
我的预期结果:
DFE = cbind.data.frame(A = c(1, 1, 2, 3),
B = c("a", "b", "a", "c"),
C = c("M", "N", "X", "M; N"))
非常感谢
解决方案
无包:
DF <- aggregate(C ~ A + B, FUN = function(x) paste(x, collapse = "; "), data = DF)
输出:
A B C
1 1 a M
2 2 a X
3 1 b N
4 3 c M; N
或与data.table
:
setDT(DF)[, .(C = paste(C, collapse = "; ")), by = .(A, B)]
推荐阅读
- java - Java 流:如何实现这种映射?
- python - 将图像读取到预先分配的 numpy 数组
- javascript - ES6 Modules - 导入文件的 3 种方式
- javascript - 最新 API 中 GuideDropDownList 中的 Item 值更改是否有任何回调函数?
- javascript - 我如何在 ngFor-inserted 上使用 d3.select()
的? - android - Android Studio 不断显示我以前的 Android 应用
- react-redux - 自定义渲染连接反应组件与模拟 axios 响应 - getBy* 查询误导性异常
- python - 如何从 python selenium 数据构建动态表?
- php - 升级到 1.32 后 rev_timestamp 无效
- regex - 打印标签的内容