我试图在列中添加条件值总和,前提是它们共享相同的国家/地区,年份和年龄,并将总和除以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

10-06 01:30