R语言dplyr包:根据Period, Nrate, Hybrid分组,计算bio和biomass的累积和并添加Total行
使用以下代码,可以根据Period, Nrate, Hybrid分组,计算bio和biomass的累积和,并在数据框sl中新添加一个Total行,用于展示各组的总值。
library(dplyr)
sl <- sl %>%
group_by(Period, Nrate, Hybrid) %>%
mutate(Total = sum(Organ)) %>%
ungroup() %>%
group_by(Period, Nrate, Hybrid, Organ) %>%
summarise(bio = sum(bio), biomass = sum(biomass)) %>%
bind_rows(sl %>% select(-bio, -biomass))
# 新增一个新行
sl <- sl %>%
group_by(Period, Nrate, Hybrid) %>%
summarise(Total = sum(Total)) %>%
mutate(Organ = 'Total', bio = sum(bio), biomass = sum(biomass)) %>%
select(Period, Nrate, Hybrid, Organ, bio, biomass) %>%
bind_rows(sl)
首先,使用group_by函数对Period, Nrate, Hybrid进行分组,然后使用mutate函数新增加一个Total列,其值为Organ列的累积和。接着,再次使用group_by函数对Period, Nrate, Hybrid, Organ进行分组,计算出bio和biomass的累积和。最后,使用bind_rows函数将原始数据框和计算结果合并。
为了新增加一个新的行,可以再次使用group_by函数对Period, Nrate, Hybrid进行分组,计算出Organ列的累积和,并使用mutate函数新增加一个Total行。最后,使用select函数选取需要的列,将结果和原始数据框使用bind_rows函数合并即可。
原文地址: https://www.cveoy.top/t/topic/mpF1 著作权归作者所有。请勿转载和采集!