好吧,我回来了,这次我带来了一个可复制的例子。
fileURL <- "https://d396qusza40orc.cloudfront.net/getdata%2Fdata%2Fss06hid.csv"
download.file(fileURL, destfile = "./acs.csv")
acs <- read.csv("./acs.csv")
mySubset <- acs[acs$ACR == 3 & acs$AGS == 6, ]
我期望在mySubset
中看到的是满足该条件的6,496中的77个记录。但是,我最终得到的是我的77个预期记录和1,036个意外记录,这些记录完全是所有列的NA
。
我在这里不了解什么?
可重复的示例:
df <- data.frame(a=c(NA, 1, 2 ,3), b = c("a", "b", "c", "d"))
df[c(NA, TRUE, FALSE, FALSE), ]
# a b
# NA NA <NA>
# 2 1 b
基本上,滤波器中的NA
默认整个行将到NAS。
要解决此行为,您可以使用is.na(df$a)
检查缺失值。