我有一项任务,我想在dplyr中完成,但我们无法对如何做到这一点进行排序。
我有一个包含年份,因子和值的数据框。我想创建一个新列(mutate),它对一年内的所有值(group_by)求和,并取值并除以年份总和。下面显示了我想要完成的内容,我的df中有前三列。
year factor value share
1977 a 564907 value / sum(value for year 1977)
1977 l 2852949 value / sum(value for year 1977)
1978 a 504028 value / sum(value for year 1978)
1978 1 413120 value / sum(value for year 1978)
1978 y 2553088 value / sum(value for year 1978)
1979 a 497766 value / sum(value for year 1979)
1979 c 789007 value / sum(value for year 1979)
正如所料,
group_by(year) %>% summarize(year.total = sum(value))
删除了值列,因此我无法继续创建共享列。
我想我需要一个条件变异,比如 %>%mutate(share = value /(与当前行年匹配的所有年份的总和值))。是的,每年的行数是可变的。