【发布时间】:2017-10-30 06:02:43
【问题描述】:
我正在尝试对下面的数据框(称为“habitat.re”)进行 chi sqare 分析,但是当我提示它时,我很难读取数据,但是它给出了错误的结果使用 $expected 它返回 18 个不同的列,而应该有 3 个(每个站点一个)。
我能找到的所有旅游指南都将数据作为表格,但是我自己无法正确转换它。
【问题讨论】:
标签: r chi-squared
我正在尝试对下面的数据框(称为“habitat.re”)进行 chi sqare 分析,但是当我提示它时,我很难读取数据,但是它给出了错误的结果使用 $expected 它返回 18 个不同的列,而应该有 3 个(每个站点一个)。
我能找到的所有旅游指南都将数据作为表格,但是我自己无法正确转换它。
【问题讨论】:
标签: r chi-squared
chisq.test 函数旨在处理两个变量,在这种情况下是列。如果您想比较所有三个列,那么我怀疑您会想要比较 1-2、2-3 和 3-3,例如
chisq.test(x=habitat.re$Gidgee, y=habitat.re$`Ian's Place`)
chisq.test(x=habitat.re$`Ian's Place`, y=habitat.re$`Saw Mulga`)
chisq.test(x=habitat.re$Gidgee, y=habitat.re$`Saw Mulga`)
实际上,只要输入上面的内容,就可以直接向 R 控制台显示很多有用的信息,如下所示:
data: habitat.re$Gidgee and y=habitat.re$`Ian's Place`
X-squared = 5.5569, df = 1, p-value = 0.01841
足够低的p-value 可能表明这两列实际上是相互依赖的。
【讨论】:
class(habitat.re$Gidgee)
Pearson 的卡方检验要求将数据框制成矩阵表,其中仅包含您需要作为数值的变量。注:我的数据框被称为“habitat.re”
habitat.df<-data.matrix(habitat.re, rownames.force = NA)# convert to matrix table
habitat.df<- habitat.df[,-c(1,2,3)] # delete first 3 columns
rownames(habitat.df) <- habitat.re$COMMON.NAME #pull names from original
chisq.test(habitat.df) #do chisquare test
chisq.test(habitat.df)$expected #return predicted values
以下是我的数据框的图片
habitat.re
habitat.df
【讨论】: