【发布时间】:2017-11-30 18:43:08
【问题描述】:
给定以下数据框:
A B C D
1 92.44 14261 13183
2 92.43 14244 13166
3 94.24 14730 13882
4 97.42 12149 11836
5 94.75 14431 13674
6 95.91 11038 10587
7 95.66 14886 14240
8 94.94 12587 11950
9 94.27 13251 12492
10 94.89 12789 12135
我正在尝试使用 R 创建 rowwise 计算,它允许我 summarize() C 和 D 列中的前 4 行,将它们相应地划分并用下一行替换。
replace(nth row + 1) = SUM(C) / SUM(D)
这是我尝试过的
df %>% mutate(B=replace(mpB, nrow(4)=summarise(C/D), NA))
期望的输出
A B C D
1 92.44 14261 13183
2 92.43 14244 13166
3 94.24 14730 13882
4 97.42 12149 11836
5 94.01 14431 13674
6 95.91 11038 10587
7 95.66 14886 14240
8 94.94 12587 11950
9 94.27 13251 12492
10 95.18 12789 12135
*用所需的计算更新第 5 行和第 10 行
【问题讨论】:
-
我不太确定你想要达到什么输出,但也许这是一个开始;
df %>% mutate(group4 = (1:n() - 1) %/% 4) %>% group_by(group4) %>% summarise(summary = sum(C)/sum(D)) -
@eipi10 这可以帮助我入门,我如何获取分组的输出并使用 mutate 替换和更新下一行。 IE.. 更新第 5 行和第 10 行,
%>% mutate(B=replace(B))?
标签: r dataframe statistics dplyr