在R数据框中用0替换NA

50

我一直在用 R 对空气质量数据集进行实验,并想出如何删除带有缺失值的行。我使用了以下命令:

complete.cases(airquality)
AQ1<-airquality[complete.cases(airquality),]

我该如何用0替换airquality中的缺失值NA,然后创建一个名为AQ2的新数据框?

另外,上面的命令是否会创建一个名为AQ1的新数据框?

谢谢!


19
你可以使用以下代码:airquality[is.na(airquality)] <- 0。这行代码的作用是将空气质量数据中的缺失值赋为0。 - Tyler Rinker
3个回答

108
dataset <- matrix(sample(c(NA, 1:5), 25, replace = TRUE), 5);
data <- as.data.frame(dataset)
[,1] [,2] [,3] [,4] [,5] 
[1,]    2    3    5    5    4
[2,]    2    4    3    2    4
[3,]    2   NA   NA   NA    2
[4,]    2    3   NA    5    5
[5,]    2    3    2    2    3
data[is.na(data)] <- 0

27

泰勒·林克说得没错:

AQ2 <- airquality
AQ2[is.na(AQ2)] <- 0

将只执行此操作。

您最初所做的是从airquality中获取所有完整行(案例)。 因此,所有不包含任何NA的案例并仅保留这些案例。


10

这里有两种我了解的快速方法:

基础方法

AQ1 <- airquality
AQ1[is.na(AQ1 <- airquality)] <- 0
AQ1

不在基础内

library(qdap)
NAer(airquality)

PS P.S.我的上面的指令是否创建了一个名为AQ1的新数据框?

查看AQ1并查看


是的,当我查看AQ1时确实如此。抱歉,我似乎像个真正的失败者一样问这样简单的问题,但我对R真的很陌生。我擅长统计学,只是从未通过这样的程序进行过。不过在过去的几天里,我已经取得了很大的进步。 - killahtron
2
并不是一开始就能掌握所有内容,但我学习的最佳方式是尝试并观察。在R中,每个事物都是一个对象,你可以通过使用“str”、“names”和“summary”等命令来查看这些对象,从而让你学到很多东西。 - Tyler Rinker
1
同意,或在其前面加上 ? 以获取对象的帮助文档,在其前面加上 ?? 以在文档中搜索该单词。 - PascalVKooten

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接