【发布时间】:2017-12-01 20:22:08
【问题描述】:
编辑:被接受的答案帮助我从眼睛上掉下来了;这种变化是一种改进,毕竟不烦人。
在table的帮助文件中,现在这样写:
非因子参数 a 通过因子 (a, exclude=exclude) 强制执行。 从 R 3.4.0 开始,注意不要计算排除值(其中 它们以前被包括在 NA 计数中)。
这烦人。之前,您可以调用table(x, exclude = NULL) 并明确确认NA 值的数量。现在,如果没有,你不会被告知。观察:
vec_with_no_nas <- c("A", "B", "B", "C")
vec_with_nas <- c("A", "B", NA, "C")
table(vec_with_no_nas)
table(vec_with_no_nas, exclude = NULL)
table(vec_with_nas)
table(vec_with_nas, exclude = NULL)
这给出了输出:
> table(vec_with_no_nas)
vec_with_no_nas
A B C
1 2 1
> table(vec_with_no_nas, exclude = NULL)
vec_with_no_nas
A B C
1 2 1
看到了吗?没有明确确认零 NA。
我真正想要的是类似于旧行为的东西,即:
> table(vec_with_no_nas, exclude = NULL)
vec_with_no_nas
A B C <NA>
1 2 1 0
FWIW,如果向量 确实 有 NA 值,table(x, exclude = NULL) 会告诉你:
> table(vec_with_nas)
vec_with_nas
A B C
1 1 1
> table(vec_with_nas, exclude = NULL)
vec_with_nas
A B C <NA>
1 1 1 1
我在基地和tidyverse 工作。是否有一个插入式 table 替代品可以明确确认没有 NA?
【问题讨论】:
-
也许您可以使用
useNA参数?table(vec_with_no_nas, useNA="always")。我目前无法访问 3.4.0 直接测试。 -
就是这样!如果您将 table(vec_with_nas, useNA = "always") table(vec_with_no_nas, useNA = "always") 放在答案中,我会接受!