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

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

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

b$a[is.na(b$a)] <- 1
with(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

标签: r


【解决方案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 - 查看此链接:stackoverflow.com/help/someone-answers
猜你喜欢
  • 2021-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-07
  • 1970-01-01
  • 2020-11-19
  • 1970-01-01
  • 2016-01-09
相关资源
最近更新 更多