r - 在运行卡方检验之前去掉 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>
解决方案
从显示的图像来看,“RaceCat”列似乎factor
class
有一些未使用的levels
. 一个选项是更新数据以删除任何列droplevels
中的那些未使用的级别factor
data <- droplevels(data)
注意:table
只返回每个唯一值的频率计数/或者如果它是 a ,factor
则返回每个levels
.factor
推荐阅读
- c# - Xamarin 形成风格吐司
- deep-learning - VGG19如何将64通道翻倍到128通道
- scala - MISSING_CREDENTIAL 未找到 oss.sonatype.org 的凭据
- ios - 在范围内找不到“isUniquelyReferencedNonObjC”
- c++ - 关于OpenGL纹理、帧缓冲区和UV坐标的问题
- javascript - 如何编辑 NPM 安装的文件?
- react-native - Expo React Native突然fontFamily不是系统字体错误,没有使用字体
- python - 如果列中的所有值都超出某个范围,则删除该列
- mysql - Django ORM创建嵌套查询防止使用`have`
- python - 如何在张量流中增强光栅图像