数据框sl含有Period Nrate Organ Hybridbio和biomass等列现利用dplyr根据Period Nrate Hybrid分组对Organ列新增加一个Total在Organ里增加新的行而不是直接增加一个新列其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/3u1 著作权归作者所有。请勿转载和采集!