数据框sl含有Period Nrate Organ Hybridbio和biomass等列现利用dplyr根据Period Nrate Hybrid分组对Organ列新增加一个类型并命名为Total在Organ列里增加新的行而不是直接增加一个新列其bio和biomass的值分别为原始Organ所有类的bio和biomass的累积和
可以按照如下步骤进行操作:
- 使用group_by()函数对数据框sl按照Period、Nrate和Hybrid三列进行分组。
- 使用summarise()函数,对bio和biomass列分别进行求和操作。
- 使用mutate()函数,新增一个Total行,其中Organ列填充为"Total",bio列填充为bio列的总和,biomass列填充为biomass列的总和。
- 使用bind_rows()函数将新生成的Total行与原始数据框sl进行合并,最终得到所需的结果。
代码实现如下:
library(dplyr)
sl %>%
group_by(Period, Nrate, Hybrid) %>%
summarise(bio = sum(bio), biomass = sum(biomass)) %>%
mutate(Organ = "Total") %>%
bind_rows(sl, .) %>%
arrange(Period, Nrate, Hybrid, desc(Organ))
其中,sl为原始数据框,按照Period、Nrate和Hybrid三列进行分组,对bio和biomass列进行求和操作,并新增一个Organ为"Total"的行。最后使用bind_rows()函数将新生成的数据框与原始数据框进行合并,并按照Period、Nrate和Hybrid三列进行升序排序,Organ列按照降序排序,最终得到所需的结果。
原文地址: https://www.cveoy.top/t/topic/3wO 著作权归作者所有。请勿转载和采集!