如何在R中按第三个变量分组分析两个分类变量的关系?
分组分析分类变量关系的R实现
1. 先修正数据引用错误
你原来的代码里data$frame$ability是笔误,假设你的数据框名称是df,所有变量要从同一个数据框中提取,比如df$cumulative.cat、df$ability、df$major.airport。
2. 生成分组列联表
直接用table()函数传入三个变量,就能按major.airport分组展示cumulative.cat和ability的交叉频数:
# 三维列联表:维度顺序为 major.airport → cumulative.cat → ability grouped_table <- table(df$major.airport, df$cumulative.cat, df$ability) print(grouped_table)
输出会分别展示major.airport=0和major.airport=1两组下,cumulative.cat与ability的交叉计数。
3. 计算分组比例(用prop.table)
如果需要看每组内的比例(比如每组中不同cumulative.cat对应的ability占比),可以给prop.table()指定margin参数:
# 按major.airport分组,计算组内的比例(margin=1代表按第一个维度分组) grouped_prop <- prop.table(grouped_table, margin = 1) print(grouped_prop)
要是想聚焦其他维度的比例,比如按major.airport和cumulative.cat的组合分组,看ability的占比,把margin设为c(1,2)即可。
4. 更清晰的输出(可选)
如果觉得三维表阅读麻烦,用ftable()把结果转成扁平化表格:
ftable(grouped_table)
内容的提问来源于stack exchange,提问作者sam.min
相关产品推荐
相关产品推荐

