【发布时间】:2021-09-07 20:41:53
【问题描述】:
我有一个数据结构,它看起来像dput 形式:
test_df <- structure(list(dob = structure(c(-25932, -25932, -25932, -25932,
-25932, -25932, -25932, -25932, -25932, -25932, -25932, -25932,
-25932, -25932, -16955, -13514, -12968, -12419, -12237, -11537,
-10168, -9742, -9376, -9131, -8766, -8676, -8462, -8189, -8036,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), class = "Date")), class = "data.frame", row.names = c(NA,
-45L))
这应该产生一个有 45 行的变量。
如果我然后运行:
test_include <- test_df %>% filter(dob == '1899-01-01')
这将返回适当数量的行,即 14。
但是,如果我做与此相反的操作并过滤所有不等于 '1899-01-01' 的行,它会返回一个奇怪的结果:
test_exclude <- test_df %>% filter(dob != '1899-01-01')
不是返回 31 行 (45 - 14),而是返回 15 行,这没有任何意义。
有没有人能解释为什么会这样?
【问题讨论】:
-
您有 NA。那些没有通过任何过滤器。