在R中创建列联表的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在R中创建列联表的问题相关的知识,希望对你有一定的参考价值。
我正在使用ISLR软件包进行统计。我正在使用OJ数据集。我正在尝试为购买人口列和特殊价格列列列权衡表。
我正在尝试以特殊价格出售CH的可能性。
到目前为止是我的代码。
library(ISLR)
CH <- table(OJ[OJ$Purchase == 'CH', "SpecialCH"])
MM <- table(OJ[OJ$Purchase == 'MM', "SpecialMM"])
table (MM, CH)
我得到的输出有点奇怪。
CH
MM 121 532
101 1 0
316 0 1
我试图找到赔率,并最终应用McNemar的检验。但是我无法生成列联表。我可以手工完成,但需要在R中执行。
答案
[您尝试使用3个变量,但是列联表仅使用2。我建议使用xtabs
,因为公式方法可以节省一些键入内容,并且可以更好地标记表:
xtabs(~SpecialMM+SpecialCH, OJ) # Only 4 weeks are both on special
# SpecialCH
# SpecialMM 0 1
# 0 743 154
# 1 169 4
xtabs(~Purchase+SpecialCH, OJ) # When CH is on special ca 75% CH
# SpecialCH
# Purchase 0 1
# CH 532 121
# MM 380 37
# xtabs(~Purchase+SpecialMM, OJ) # When MM is on special ca 58% MM
# SpecialMM
# Purchase 0 1
# CH 581 72
# MM 316 101
以上是关于在R中创建列联表的问题的主要内容,如果未能解决你的问题,请参考以下文章
R构建列联表(Contingency Table or crosstabs)
R语言table函数和xtabs函数生成三维列联表使用margin.table函数prop.table函数和addmargins函数计算多维列联表的边缘频率值频率计数比例值ftable美化输出
R语言使用prop.table函数为二维列联表计算所有类别组合的比例使用addmargins函数为二维列联表计算所有的边缘频数值使用addmargins函数和prop.table函数计算边缘比率值