[英]Trying to delete rows with NAs, so that I can do chi-square analysis
R 社区。
我正在尝试删除具有NA的行,以便我可以对我的数据进行卡方分析。 否则,当我选择两个变量来制作数据表时,会有一个标题为“未知”的列,这会干扰我所知道的卡方分析。
这些行对应于数据中的每个患者。 mint$bp_type2 和 mint$menopause 是两列。 我的想法是用随机数替换 NA; 我选择了 20。这样,我就可以删除该列下值为 20 的这些行。
这是代码:
mint <- mint[!(mint$bp_type2 == 20),] mint$menopause[is.na(mint$menopause)] <- 20 mint <- mint[!(mint$menopause == 20),] table(mint$bp_type2,mint$menopause) chisq.test(mint$bp_type2,mint$menopause)
这是我的错误信息:
> mint$bp_type2[is.na(mint$bp_type2)] <- 20
Warning message:
In `[<-.factor`(`*tmp*`, is.na(mint$bp_type2), value = c(1L, 4L, :
invalid factor level, NA generated
随后,我运行代码的rest,我看到数据集并没有消除这些行,因为生成的数据表仍然有一个标记为“未知”的列。
请让我知道我能做些什么来解决这个问题,这样我就可以在没有“未知”列的情况下进行卡方分析。
谢谢!!
错误消息是因为“bp_type2”列是一个factor
,而“20”不是该列的levels
之一。 我们可以转换为character
或创建“20”作为levels
之一
levels(mint$bp_type2) <- c(levels(mint$bp_type2), '20')
然后做作业
mint$bp_type2[is.na(mint$bp_type2)] <- '20'
使用forcats
, fct_expand
可以添加更多级别
library(forcats)
mint$bp_type2 <- fct_expand(mint$bp_type2, '20')
尝试:
chisq.test(na.omit(df$columnName))
这将在进行卡方检验时省略 NA。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.