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

如何获取列联表的行总计百分比(基于mtcars数据集)

获取mtcars数据集中按cyl分组的vs变量行百分比列联表

你的原代码中prop.table()默认计算的是整体占比(所有单元格占总观测数的比例),要实现“给定cyl类别下,vs取0或1的观测值占比”,只需给prop.table()指定margin参数,按cyl分组(列维度)计算比例。

修改后的代码

# 生成vs与cyl的交叉表(行:vs,列:cyl)
cross_table <- table(mtcars$vs, mtcars$cyl)

# 按列(cyl分组)计算组内百分比,margin=2代表按列维度汇总
grouped_percent_table <- prop.table(cross_table, margin = 2)

# 格式化为带两位小数的百分比(可选,方便查看)
grouped_percent_table <- round(grouped_percent_table * 100, 2)

# 查看结果
print(grouped_percent_table)

结果说明

运行后每个cyl类别对应的列内百分比总和为100%:

  • 比如cyl=4列的数值,代表在4缸车型中,vs=0和vs=1的观测值占该组总数量的比例
  • 同理cyl=6和cyl=8列的数值,分别对应各自缸数分组内的vs占比

验证示例

以cyl=4组为例:

# 查看cyl=4的总观测数
table(mtcars$cyl)["4"] # 结果为11
# 查看cyl=4组内vs=1的数量
table(mtcars$vs[mtcars$cyl == 4])["1"] # 结果为10
# 手动计算占比:10/11 ≈ 90.91%,与代码输出一致

内容的提问来源于stack exchange,提问作者four77

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 01:07:43