R语言如何计算dataframe每列各值占该列总答题数的百分比
逐列计算答题占比的R实现方案
你可以根据自己的使用习惯选择以下任意一种方法实现需求:
- 基础R向量化运算(最简便,无需加载第三方包)
直接对整个数据框做数值运算即可自动逐元素匹配计算,可搭配round()函数保留指定小数位:
# 计算占比,保留2位小数 df_pct <- round(df / 2230 * 100, 2)
运行后输出结果示例:
q1 q2 q3 1 7.13 4.75 4.44 2 6.23 12.74 9.96 3 46.99 46.77 43.99 4 25.61 30.13 37.80 5 4.17 5.61 4.22
- dplyr包实现
适合已经在使用tidyverse生态工具链的场景,用across()遍历所有列做计算:
library(dplyr) df_pct <- df %>% mutate(across(everything(), ~round(.x / 2230 * 100, 2)))
- janitor包adorn_percentages函数实现
你之前用到的adorn_percentages可以通过调整参数实现按列计算占比,还能直接输出带百分号的格式化结果:
library(janitor) df_pct <- df %>% # 指定按列分母计算占比 adorn_percentages(denominator = "col") %>% # 格式化百分比,保留2位小数 adorn_pct_formatting(digits = 2)
运行后会自动在数值后添加%符号,适合直接做表输出。
内容的提问来源于stack exchange,提问作者Fede R
相关产品推荐
相关产品推荐

