r - 将具有重复值对的 2 行合并为一行
问题描述
我有下面的数据框,其中有 2 行具有相同的列值对A
,B
-3RD 和 4RTH 具有 2 3 -,-7TH 和 8TH 具有 4 6-。
master <- data.frame(A=c(1,1,2,2,3,3,4,4,5,5), B=c(1,2,3,3,4,5,6,6,7,8),C=c(5,2,5,7,7,5,7,9,7,8),D=c(1,2,5,3,7,5,9,6,7,0))
A B C D
1 1 1 5 1
2 1 2 2 2
3 2 3 5 5
4 2 3 7 3
5 3 4 7 7
6 3 5 5 5
7 4 6 7 9
8 4 6 9 6
9 5 7 7 7
10 5 8 8 0
我想通过添加管道将这些行合并为一个 | C
和的值之间的运算符D
。例如,第 2 行和第 3 行如下:
A B C D
2 3 2|5 2|5
解决方案
我认为在您的示例中,您的组合对偏离了一行,假设是这种情况,这就是您要寻找的。我们按要折叠重复项的列进行分组,然后使用summarize_all
withpaste0
将值与分隔符组合起来。
library(tidyverse)
master %>% group_by(A,B) %>% summarize_all(funs(paste0(., collapse="|")))
A B C D
<dbl> <dbl> <chr> <chr>
1 1 1 5 1
2 1 2 2 2
3 2 3 5|7 5|3
4 3 4 7 7
5 3 5 5 5
6 4 6 7|9 9|6
7 5 7 7 7
8 5 8 8 0
推荐阅读
- bash - s3 awk bash管道
- xmpp - openfire xmpp 服务器的 dns 配置
- c# - 将文本中的 SQL 返回到实体框架中的模型
- c# - iTextsharp HTML/CSS 到 pdf 的转换。边界半径属性不起作用
- cmake - 删除 CMake 链接器标志端组重复项
- android - 将 GPS 存储在 jpeg 中的 Android 已损坏
- java - 餐饮哲学家java替代解决方案
- angular - SVG 动画 Web 动画 API
- sql - OUTER APPLY 和 OUTER JOIN 有什么区别,何时使用?
- html - 如何显示我在控制台上看到的数据表?