R语言 dplyr 包:根据多个列分组并计算累积和,并添加总计行
使用 R 语言的 dplyr 包可以轻松地对数据框进行分组并计算累积和,并添加一个总计行。假设数据框 sl 包含 Period, Nrate, Organ, Hybrid, bio 和 biomass 等列,我们需要根据 Period, Nrate, Hybrid 分组,并对 Organ 列新增一个 Total 行,其 bio 和 biomass 的值分别为原始 Organ 所有类的 bio 和 biomass 的累积和。
可以使用以下代码实现:
library(dplyr)
sl %>%
group_by(Period, Nrate, Hybrid) %>%
summarise(Total = 'Total', bio = sum(bio), biomass = sum(biomass)) %>%
bind_rows(sl) %>%
arrange(Period, Nrate, Hybrid, Organ)
首先使用 group_by 函数对数据框进行分组,然后使用 summarise 函数计算每个组的 bio 和 biomass 的累积和,并新增一个 Total 列。然后使用 bind_rows 函数将计算结果和原始数据框进行合并,并使用 arrange 函数按照 Period、Nrate、Hybrid 和 Organ 的顺序进行排序。
需要注意的是,新增的 Total 行只包含 Total、bio 和 biomass 三列,Organ 列的值为 'Total'。如果需要在 Total 行中保留 Period、Nrate 和 Hybrid 的信息,可以将 summarise 函数改为以下形式:
summarise(Total = 'Total', Period = unique(Period), Nrate = unique(Nrate), Hybrid = unique(Hybrid), bio = sum(bio), biomass = sum(biomass))
通过这种方法,我们可以轻松地根据多个列对数据框进行分组,并计算累积和,并添加一个总计行。这在数据分析中非常有用,例如计算不同分组的总计值或比较不同分组的平均值。
原文地址: https://www.cveoy.top/t/topic/mpFr 著作权归作者所有。请勿转载和采集!