繁体   English   中英

尝试删除带有 NA 的行,以便我可以进行卡方分析

[英]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'

使用forcatsfct_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM