2016-07-04 155 views
0

我使用聚合函數來計算每個觀察兩個變量的差異,所以不知何故如此(並且我想將結果保存爲新變量):r - 聚合/減去兩個變量,行

數據1

  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

爲什麼聚集後未減? – Parfait

回答

0

我們可以用mutate_each

library(dplyr) 
data1 %>% 
    group_by(Group) %>% 
    mutate_each(funs(c(NA, diff(.))), 2:3) 

或者,如果我們需要的變量之間相減,

data1 %>% 
     mutate(Difference = Points_Attemp1 - Points_Attemp2)