R语言如何按日期排序后计算分组内度量值的首尾差值
分组计算首尾度量差值实现方案
实现逻辑
- 按
my_groups字段对数据分组 - 每组内部按
time字段升序排序 - 计算每组排序后末尾
measure值减去首个measure值,得到差值diff
代码实现(dplyr管道方案,适配你现有写法)
首先加载依赖包,再运行处理逻辑:
library(dplyr) result <- test1 %>% group_by(my_groups) %>% arrange(time, .by_group = TRUE) %>% # 开启组内按时间排序 summarise(diff = last(measure) - first(measure))
结果说明
运行上述代码得到的原始结果如下:
# A tibble: 3 × 2 my_groups diff <chr> <dbl> 1 A 100 2 B -2 3 C -1
如果你需要完全匹配你示例中展示的无负号数值,可调整计算逻辑为取差值绝对值:
summarise(diff = abs(last(measure) - first(measure)))
调整后结果与你给出的期望数值完全一致。
内容的提问来源于stack exchange,提问作者DR15
相关产品推荐
相关产品推荐

