r - R:计算具有组引用的行中的值之间的差异
问题描述
这是我的df:
group value
1 10
1 20
1 25
2 5
2 10
2 15
我现在想计算组的每个值与参考值之间的差异,参考值是组的第一行。更确切地说:
group value diff
1 10 NA # because this is the reference for group 1
1 20 10 # value[2] - value[1]
1 25 15 # value[3] - value[1]
2 5 NA # because this is the reference for group 2
2 10 5 # value[5] - value[4]
2 15 10 # value[6] - value[4]
我为上一行的不同分数找到了很好的答案(例如,dpylr 中的滞后函数,data.table 中的移位函数)。但是,我正在寻找一个固定的参考点,但我无法让它工作。
解决方案
试试下面的代码
transform(
df,
Diff = ave(value, group, FUN = function(x) c(NA, diff(x)))
)
这使
group value Diff
1 1 10 NA
2 1 20 10
3 1 25 5
4 2 5 NA
5 2 10 5
6 2 15 5
推荐阅读
- java - Keycloak Java Adapter 属性“public-client”是什么意思?
- python - 如何在类定义中定义和使用不会成为 Python 中的类变量的变量
- javascript - 使用视频文件 url 从 azure blob 存储下载视频文件时遇到问题
- javascript - 在 MongoDB 中创建嵌套聚合
- android-jetpack-compose - 使用轮廓 Jetpack Compose 创建芯片
- binding - SwiftUI 更新 NavigationLink(destination:label) 中的 @Binding 值导致目的地重新出现
- javascript - 如何在单击时切换具有相同类名的多个元素
- javascript - WEBGL P5js 未将图像显示为纹理
- grep - 如何在 2 个 txt 文件之间进行 grep
- sed - Linux SED 在文件中替换 HEX 而不是插入?\x2A