【问题标题】:Get rid of 0s before running chi-square test在运行卡方检验之前去掉 0
【发布时间】:2021-12-12 06:16:30
【问题描述】:

我的变量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()chisq.test() 不会运行。它说

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

【问题讨论】:

  • 这个种族变量是您预期的还是您观察到的?如果它是您观察到的一部分,则无需丢弃它。对于零值观察计数,卡方是明确定义的。

标签: r chi-squared


【解决方案1】:

从显示的图像来看,“RaceCat”列似乎是factorclass,还有一些未使用的levels。一种选择是使用droplevels 更新数据,这会删除任何factor 列中的未使用级别

data <- droplevels(data)

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

【讨论】:

  • 我试过了,但似乎没有用。我做了 hivneg
  • @user16914149 当您说它不起作用时,您将得到什么作为输出。 - 错误或警告或任何其他
  • 我的输出显示 mapply 中的警告消息(FUN = f, ..., SIMPLIFY = FALSE):“更长的参数不是更短长度的倍数”
  • @user16914149 你能用dput(a)更新你的帖子吗
  • @user16914149 您在帖子中的描述表明您正在创建 a 仅从单个列“RaceCat”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-24
相关资源
最近更新 更多