如何用data.table包生成带总计行的表格聚合结果
用data.table生成带总计行的分组汇总表
步骤1:准备数据
先加载data.table包,并将内置的mtcars数据集转换为带行名的data.table:
library(data.table) DTmtcars <- as.data.table(mtcars, keep.rownames = TRUE)
步骤2:生成分组汇总表
按gear分组,计算三个指标:
QSEC:qsec列的平均值DISP:disp列的总和除以分组内的行数(即该分组的disp平均值)VS:vs列中不等于0的记录数
对应的代码:
group_summary <- DTmtcars[, .( QSEC = mean(qsec), DISP = sum(disp)/.N, VS = sum(vs != 0) ), by = gear]
步骤3:添加总计行
单独计算全数据集的三个指标,然后将其与分组汇总表合并,给总计行的gear列标记为“总计”:
total_row <- DTmtcars[, .( gear = "总计", QSEC = mean(qsec), DISP = sum(disp)/.N, VS = sum(vs != 0) )] # 合并分组表和总计行 final_table <- rbind(group_summary, total_row)
运行后final_table就是包含分组统计和总计行的最终结果。
内容的提问来源于stack exchange,提问作者user26368774
相关产品推荐
相关产品推荐

