You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为R语言生成的列表式频次表添加各类别百分比行

问题场景

现有包含3个分类变量的数据框,通过以下代码做单变量频次统计:

df = data_frame(merged$arrears, merged$mortgage_type, merged$occupancy)
apply(df, 2, table)

运行后得到列表结构的频次统计结果:

## $`merged$arrears`
## 
##     0     1     2     3     4 
## 52124  5523  2371  1538    27 
## 
## $`merged$mortgage_type`
## 
## bullet    erm linear 
##  19958  17326  18181 
## 
## $`merged$occupancy`
## 
##            btl   holiday home owner occupied 
##          12296          27996          13112

需要给列表中每个频次表新增对应类别的百分比占比行。

实现代码

直接遍历统计结果列表,给每个频次表拼接计算好的占比行即可:

# 存储原始频次统计结果
freq_res <- apply(df, 2, table)

# 批量追加百分比行
freq_with_pct <- lapply(freq_res, function(x){
  # 计算各分类百分比,可按需调整保留小数位数
  pct_val <- round(prop.table(x)*100, 2)
  rbind(
    计数 = x,
    占比(%) = pct_val
  )
})

运行后单个变量的输出效果参考:

## $`merged$arrears`
##             0      1      2      3     4
## 计数    52124 5523.0 2371.0 1538.0 27.00
## 占比(%) 84.69   8.98   3.85   2.44  0.04

如果需要输出带%符号的格式化占比,把占比计算部分替换为如下代码即可:

pct_val <- paste0(round(prop.table(x)*100, 2), "%")

对应输出效果:

## $`merged$arrears`
##        0        1        2        3        4      
## 计数   "52124"  "5523"   "2371"   "1538"   "27"   
## 占比(%) "84.69%" "8.98%"  "3.85%"  "2.44%"  "0.04%"

内容的提问来源于stack exchange,提问作者Saïd Maanan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 09:36:20