r - 将多行组压缩为单行,保持 R 中 x 最高的值?
问题描述
我有一个数据框,每次都包含多行数据,并且想按时间分组以创建一个精简的数据框。列 a 和 b 是其他列的累积总和,并且应保留每个时间组中 x 最高的行的值,而不是总和或平均值。
x time group value cumsum_A cumsum_B
1 0 A 0 0 0
2 0 B 0 0 0
3 0 A 0 0 0
4 1 A 0 0 0
5 1 B 1 0 1
6 1 B 0 0 1
7 2 B 1 0 2
8 2 A 1 1 2
9 2 A 1 2 2
10 2 A -1 1 2
11 3 A 0 1 2
12 3 B 1 1 3
理想的结果如下:
x time group value cumsum_A cumsum_B
3 0 A 0 0 0
6 1 B 0 0 1
10 2 A -1 1 2
12 3 B 1 1 3
解决方案
一个选项是按“时间”、“组”和slice
“x”值为max
( which.max
)的行进行分组
library(dplyr)
df1 %>%
group_by(time, group) %>%
slice(which.max(x))
推荐阅读
- react-native - 致命异常:mqt_native_modules
- python - 在 mongodb 中使用 group by 之前的排序
- python - 检查字符串是否为空
- python - 无法解释“CategoricalDtype”
- jdbc - 关闭 JDBC 子包装器时出错:com.ibm.websphere.ce.cm.StaleConnectionException: Closed Connection
- javascript - Jquery使用参数值调用相同的函数
- html - HTML 报告的标题默认为报告的底部
- python-3.x - 如果字符串包含另一个字符串 Python 的元素列表中的单词,则提取部分字符串
- python - 从远离 main() 的文件中导入 Python 模块
- python - 如何让用户在图像上设置 4 个点?