我使用聚合函数来计算两个变量的每次观察的差异,所以不知何故这样(我希望将结果保存为新变量):
DATA1
Group Points_Attempt1 Points_Attempt2
1 1 10 5
2 1 34 23
3 1 50 5
4 1 10 12
5 2 11 21
6 2 23 23
7 2 32 10
8 2 12 10
我能够做到这样的事情:
aggregate(data1[c("Points_Attempt1","Points_Attempt2")],list(data1$group),diff)
但是我希望它能用于每一个观察,我现在不想选择观察结果,所以不知何故行数(这里是1-8)。
所以我正在搜索以下第四列(差异),然后我想将其作为新变量安全:
Group Points_Attempt1 Points_Attempt2 Difference
1 1 10 5 5
2 1 34 23 11
3 1 50 5 45
4 1 10 12 -2
5 2 11 21 -10
6 2 23 23 0
7 2 32 10 22
8 2 12 10 2
如果有人可以帮助我,我将非常感激。
答案 0 :(得分:0)
我们可以使用mutate_each
library(dplyr)
data1 %>%
group_by(Group) %>%
mutate_each(funs(c(NA, diff(.))), 2:3)
或者如果我们需要在变量之间减去,
data1 %>%
mutate(Difference = Points_Attemp1 - Points_Attemp2)