如何在R中将NA替换为1?

Posted

技术标签:

【中文标题】如何在R中将NA替换为1?【英文标题】:How to replace NA to 1 in R? 【发布时间】:2019-04-15 09:55:28 【问题描述】:

我已经尝试过这个网站上其他人的 R 代码来解决类似的问题,但没有一个能解决,所以我很困惑。 我基本上是在尝试替换名为“my_data1”的数据集中名为“Item4”的第 6 列中的所有 NA 值。

以及到目前为止我尝试过的那些 R 代码:

b$a[is.na(b$a)] <- 1with(b, replace(a, is.na(a), 1))

`df[,3:5][is.na(df[,3:5])] <-0`
df <- na_if(df, 'foo')
x[c("a", "b")][is.na(x[c("a", "b")])] <- 0
tidyr::replace_na(x, list(a=0, b=0))#

但是,它们在我的数据集中都不起作用。这些 NA 值根本不会被代码替换。

如果有人能帮助我解决这个问题,我将不胜感激。

【问题讨论】:

请不要将此问题标记为重复,甚至不要在第一眼就关闭此问题。我承认网站上有重复的问题。但是,正如我所说,我尝试了大多数 R 代码,但它们没有帮助。所以我真的需要得到别人的帮助。 你得到什么错误(如果有的话)? 请显示str(my_data1)的输出。也许这些不是实际的NA 值,而是字符串"NA"?此外,在您的代码中,data.frame 有不同的符号:bdfx。希望您在尝试代码时将其更改为my_data1 【参考方案1】:

这应该有效: - 替换该列中等于 NA 的所有行。如果它不知道变量的类别将有助于排除故障。 sapply(my_data1, 类)

my_data1[ is.na( my_data1$Item4) , "Item4" ] <- 1

在您的屏幕截图中显示为 NA 的值实际上是字符吗?尝试使用 dput 共享数据 - 如果是这样,您将需要:

my_data1[  my_data1$Item4 %in% "NA" , "Item4" ] <- 1

【讨论】:

非常感谢您的建议。第二个 R 代码有效。我没有意识到 NA 是字符串而不是数字。 @JasminZhang - 您可能希望将所有“NA”转换为 NA,然后转换第 6 列。您应该在这里检查您的课程,我希望您的变量是一个因素而不是数字 -如果你正在采取手段等,你会想要转换它。 @JasminZhang 如果这解决了问题不要忘记接受答案 是的,这完全解决了我的问题。但是,我可以通过哪种方式接受答案? @JasminZhang - 查看此链接:***.com/help/someone-answers

以上是关于如何在R中将NA替换为1?的主要内容,如果未能解决你的问题,请参考以下文章

r 在R中的数据帧中将空白转换为NA

用序列中的缺失值替换 NA (R)

我如何在R中使用示例函数进行引导?替换行问题

在 R 的数据集中将 -inf、NaN 和 NA 值替换为零

R语言dplyr包将dataframe中的NA值替换(replace)为0实战:所有NA值替换(replace)为0具体列的NA值替换(replace)为0若干列的NA值替换(replace)为0

R语言把dataframe中的NA值替换为0