2017-07-20 32 views
1

我的數據如下所示:R平均值時間的差異,每組

  Land happy gincdif uempla year 
    1 Austria  8  2  0 2012 
    2 Austria  4  1  0 2002 
    3 Austria  7  2  0 2009 
    4 Germany  9  4  0 2008 
    5 Germany  9  4  0 2002 
    6 Germany  5  1  0 2010 

我已經計算出每年的土地幸福的意思,用dplyr:

DG <- dgf %>% 
     group_by(year) %>% 
     mutate(mean.ha = mean(happy, na.rm=T)) 

現在我我想試試這個代碼:

DG <- dgf %>% 
     group_by(year) %>% 
     mutate(mean.ha = mean(happy, na.rm=T)) %>% 
     mutate(diff.ha = mean.happy[year==2010] - 
     mean.happy[year==2008]) 

但是我只拿到NA行。也許這是因爲不是每個國家在2008年和2012年都存在觀測。

有沒有人有我的解決方案?我想計算這段時間幸福感的下降。

非常感謝!

+1

分組必須通過「土地」,而不是「年」,否則你只能在同一年,組內訪問值,即你想要做一下'gincdif什麼做組 –

+0

之間沒有可比性'變量?這會導致重複的土地/年份組合。 – Joe

回答

0
dgf = data.frame(year = c(2008,2009,2010,2011), 
       happy = c(1,0,0,1)) 

DG <- dgf %>% 
    group_by(year) %>% 
    mutate(mean.ha = mean(happy, na.rm=T)) %>% 
    .[.$year == 2008 | .$year == 2010, "mean.ha"] %>% 
    unlist() %>% 
    diff()