在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语言列联表的统计分析及假设检验

R语言table函数和xtabs函数生成三维列联表使用margin.table函数prop.table函数和addmargins函数计算多维列联表的边缘频率值频率计数比例值ftable美化输出

R语言使用prop.table函数为二维列联表计算所有类别组合的比例使用addmargins函数为二维列联表计算所有的边缘频数值使用addmargins函数和prop.table函数计算边缘比率值

如何使用 r 中的 ROCR 包绘制 ROC 曲线,*只有分类列联表*

根据用户的输入创建列联表 - R Shiny