我的数据如下所示:
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计算了每年快乐和Land的平均值:
DG <- dgf %>%
group_by(year) %>%
mutate(mean.ha = mean(happy, na.rm=T))
现在我想计算2008年和2010年之间mean.ha的差异。我尝试了这段代码:
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年的每一块土地都存在观察结果。
有人为我提供解决方案吗?我想计算这段时间内幸福感的下降。
非常感谢!
答案 0 :(得分: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()