使用dplyr在数据框中按分组计算bio和biomass总和并添加'Total'行
本文将介绍如何在R语言中使用dplyr包,对包含'Period', 'Nrate', 'Organ', 'Hybrid', 'bio'和'biomass'等列的数据框sl进行操作,按照'Period', 'Nrate', 'Hybrid'进行分组,并计算每个分组中'bio'和'biomass'列的累积和,最终将结果添加到一个新的'Total'行。
具体步骤如下:
- 使用
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为原始数据框。group_by(Period, Nrate, Hybrid): 对数据框sl按照'Period'、'Nrate'和'Hybrid'三列进行分组。summarise(bio = sum(bio), biomass = sum(biomass)): 对每个分组中的'bio'和'biomass'列分别进行求和操作。mutate(Organ = 'Total'): 新增一个名为'Organ'的列,并将其填充为'Total'。bind_rows(sl, .): 将新生成的'Total'行与原始数据框sl进行合并。arrange(Period, Nrate, Hybrid, desc(Organ)): 对合并后的数据框按照'Period'、'Nrate'和'Hybrid'三列进行升序排序,'Organ'列按照降序排序。
通过以上步骤,即可在数据框sl中根据分组计算'bio'和'biomass'列的总和,并添加一个新的'Total'行,最终得到一个包含所有原始数据和'Total'行的新数据框。
原文地址: https://www.cveoy.top/t/topic/mpIb 著作权归作者所有。请勿转载和采集!