关于类似的事情有一些问题,例如
Subsetting R data frame results in mysterious NA rows
然而他们不回答我的问题,因为(1)我不明白这一整体"如果你的代码类似于这个例子(形式为d [d $ v == x,] ,你的问题确实几乎肯定是你们专栏中的NA。"因为下面的例子证明情况并非如此。
对于示例,例如:
iris
gsub(1.8, NA, iris$Petal.Width)
iris[iris$Petal.Width == 2.0,]
产生
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
111 6.5 3.2 5.1 2 virginica
114 5.7 2.5 5.0 2 virginica
122 5.6 2.8 4.9 2 virginica
123 7.7 2.8 6.7 2 virginica
132 7.9 3.8 6.4 2 virginica
148 6.5 3.0 5.2 2 virginica
显然,尽管参考专栏中有足够的NA,但没有出现神秘的NA行
我的问题是我目前正在以df [df $ var == x,]的形式进行子集化 - 但是目前这样做是在每次表格中给我一个NA行:
NA NA <NA> <NA> <NA> <NA> <NA> <NA> <NA> NA
我会给出一个实际可重复的例子 - 但电子表格是保密的。
答案 0 :(得分:2)
使用您的示例(因为您忘记重新分配变量而没有显示任何NA):
iris
iris$Petal.Width <- gsub(1.8, NA, iris$Petal.Width)
iris[!is.na(iris$Petal.Width) & iris$Petal.Width == 2.0,]
这也有效:
iris[complete.cases(iris$Petal.Width) & iris$Petal.Width== 2 ,]
给出以下输出:
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
111 6.5 3.2 5.1 2 virginica
114 5.7 2.5 5.0 2 virginica
122 5.6 2.8 4.9 2 virginica
123 7.7 2.8 6.7 2 virginica
132 7.9 3.8 6.4 2 virginica
148 6.5 3.0 5.2 2 virginica
阅读这些链接作为R中NAs的介绍: http://www.statmethods.net/input/missingdata.html http://www.ats.ucla.edu/stat/r/faq/missing.htm