我试图在列中添加条件值总和,前提是它们共享相同的国家/地区,年份和年龄,并将总和除以Num给出的值。我的数据框看起来像这样:
Country Num Year Age Variable
AU 20 1989 12 0.009
AU 20 1989 12 0.0015
AU 20 1989 13 0.008
AU 19 1990 19 0.005
USA 1 2011 55 0.0001
到目前为止,我已经尝试过使用dplyr,但是我对如何有效调节条件以及如何将其除以Num感到困惑
dta %>% mutate(Variable) %>% group_by(Country,Year,Age) %>%
summarise(ME=sum(Variable)[,"ME"], MAE=sum(Variable)[,"MAE"])
任何帮助是极大的赞赏!
最佳答案
这是一个dplyr
解决方案,用于解决您要达到的目标。
dat %>% group_by(Country, Year, Age) %>% mutate(ME = sum(Variable)/sum(Num))
Source: local data frame [5 x 6]
Groups: Country, Year, Age
Country Num Year Age Variable ME
1 AU 20 1989 12 0.0090 0.0002625000
2 AU 20 1989 12 0.0015 0.0002625000
3 AU 20 1989 13 0.0080 0.0004000000
4 AU 19 1990 19 0.0050 0.0002631579
5 USA 1 2011 55 0.0001 0.0001000000