你能帮帮我吗?如何使用dplyr的变体函数或data.table库向dataframe添加动态列?
例如,我们有以下数据:
name sum
а 3
b 7
c 13
d 11
e 16
我们需要一个列"dynamics“,其中包含当前行中的和与前一行中的和之间的差异:
name sum dynamics
a 3 -
b 7 4
c 13 6
d 11 -2
e 16 5
第一行没有前一行(所以是"-"),因为第二行动力学等于7-3=4,3d等于13-7=6,依此类推。
我尝试了不同的变体,例如:
df %>% mutate(dynamics = value - value[-1])
但这不管用。
如何正确地写这个?
提前感谢!
发布于 2022-02-20 16:51:22
输入
dat =data.table(name = letters[1:5], sum=c(3,7,13,11,16))
data.table
dat[, dynamics:=sum - shift(sum)][]
或者,使用dplyr:
dat %>% mutate(dynamics = sum - lag(sum))
输出:
name sum dynamics
1: a 3 NA
2: b 7 4
3: c 13 6
4: d 11 -2
5: e 16 5
https://stackoverflow.com/questions/71192497
复制相似问题