首页 > 解决方案 > 在运行卡方检验之前去掉 0

问题描述

编码后我的变量RaceCat看起来像这样table(data$RaceCat)

在此处输入图像描述

我想进行卡方检验,但我知道我需要摆脱美洲印第安人和中东人的种族,因为它们有 0。American Indian被编码为 5 并且Middle Eastern是 4。我的思考过程是做data%>% filter(RaceCat!=5)%>% filter(RaceCat!=4) 但是,当我尝试这样做时,R 说length of 'dimnames' [2] not equal to array extent

这是我尝试做的另一件事:

hivneg<-droplevels(hivneg)
a<- table(hivneg$RaceCat, hivneg$PrEP2)
chisq.test(a, correct=F)

但是,table()andchisq.test()不会运行。它说

mapply(FUN = f, ..., SIMPLIFY = FALSE) 中的警告消息:“较长的参数不是较短长度的倍数”</p>

标签: rchi-squared

解决方案


从显示的图像来看,“RaceCat”列似乎factor class有一些未使用的levels. 一个选项是更新数据以删除任何列droplevels中的那些未使用的级别factor

data <- droplevels(data)

注意:table只返回每个唯一值的频率计数/或者如果它是 a ,factor则返回每个levels.factor


推荐阅读