我有一个看起来像这样的数据框:
Game Team Value
1 A 0.6
1 B 0.5
2 C 1.2
2 D 0.3
我想创建一个新列来计算给定游戏的“价值”差异,因此它将是:
difference
0.1
-0.1
0.9
-0.9
换句话说,我想按“游戏”分组,但我不太确定如何做到这一点
如果每个组只有两个元素:
library(data.table)
# using @DavidArenburg clean trick
# otherwise c(diff(rev(Value)),diff(Value)) makes it
setDT(df)[,difference:=diff(Value)*c(-1,1), by = Game][]
Game Team Value difference
1: 1 A 0.6 0.1
2: 1 B 0.5 -0.1
3: 2 C 1.2 0.9
4: 2 D 0.3 -0.9
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句