【发布时间】:2014-10-14 03:35:16
【问题描述】:
所以我有一些格式如下的数据:
header1 header2
"nocandy" "nocandy"
"nocandy" "nocandy"
"nocandy" "nocandy"
"nocandy" "candy"
"nocandy" "candy"
"candy" "candy"
etc...
我用candytext <- read.table("candytest.txt", header=TRUE) 导入了它
我想做一个卡方检验,看看两组之间是否存在差异。
当我使用函数table(candytest) 时,我得到如下信息:
header2
header1 candy nocandy
candy 112 39
nocandy 4 82
但是如果我运行 summary(candytest) 我会得到这样的结果:
header1 header2
candy :151 candy :116
nocandy: 86 nocandy:121
如您所见,这两个表格的格式不同。但是,我可以在第一个表上运行卡方检验,但不能在第二个表上运行。然而,汇总表更像是我需要用来执行chisq.test() 的表。第二个表看起来像是假设数据是配对的,但数据不是配对的。如果它是配对的,那就没问题了,我可以在table(candytest) 的输出上使用 McNemars 测试,但它没有配对。那么如何创建一个看起来像汇总表的 2 × 2 矩阵,而无需手动输入。我意识到我可以将汇总表复制到矩阵中,但是我想知道如何在 R 中正确地将其转换为函数。
谢谢!
【问题讨论】:
-
summary不是为做交叉表或卡方统计而设计的。它不返回表对象。它逐列返回文本输出。请阅读帮助页面。 -
您可以通过
summary(table(df))获得卡方检验结果。但您可能需要将数据重新排列成组 -
@RichardScriven - 注意它们不一样:
summary(table(df))等价于chisq.test(tab, correct=FALSE),其中correct=TRUE是默认值。 -
我想我应该写到
summary.data.frame不是这样设计的。 -
键入
methods(summary)以查看其他一些函数名称。
标签: r statistics