如何在R语言中为数据框添加列总计?使用dplyr::summarise遇阻求助
给数据框添加总计行的dplyr解决方案
我明白你遇到的问题了——单独用dplyr::summarise只会生成汇总后的单行数据,而不是把总计行追加到原数据框末尾。这里有两种实用的方法来实现你想要的效果:
方法一:用dplyr原生函数组合实现
先构造你的示例数据框:
library(dplyr) df <- tibble( a = c(1, 2, 3), b = c(4, 5, 6) )
然后通过bind_rows把原数据和汇总行合并:
df_with_total <- df %>% bind_rows( # 生成总计行 summarise(., a = "Total", b = sum(b)) ) # 查看结果 df_with_total
运行后会得到你想要的输出:
# A tibble: 4 × 2 a b <chr> <dbl> 1 1 4 2 2 5 3 3 6 4 Total 15
这里的关键是用bind_rows把原数据框和summarise生成的单行汇总数据拼接在一起,同时把a列的总计标识设为字符串"Total"。
方法二:用janitor包快速实现(更简洁)
如果你不想写太多代码,可以用janitor包的adorn_totals函数,它专门用来给数据框添加总计行/列:
library(janitor) df %>% adorn_totals("row")
这个函数会自动计算数值列的总和,并在第一列添加"Total"标识,输出结果和方法一完全一致,非常适合快速处理这类需求。
内容的提问来源于stack exchange,提问作者steves
相关产品推荐
相关产品推荐

