32

在我尝试运行的脚本中,有时会填充变量''(这意味着:完全为空),例如

variable <- ''

有谁知道检查变量是否具有值的方法''

is.null(variable)似乎不起作用。''不一样NULL

4

3 回答 3

32

''是一个空字符。这并不意味着“完全空”——确实如此NULL

要测试它,只需检查是否相等:

if (variable == '') …

但是,你得到的错误,

需要 TRUE/FALSE 的缺失值

意味着您的变量中存在缺失值,即NA. if无法处理缺失值。AnNA是许多计算的结果,这些计算本身包含一个NA值。例如,再次NA与任何值(甚至NA其自身)进行比较会产生NA

variable = NA
variable == NA
# [1] NA

既然if期望TRUEor FALSE,它就无法处理NA。如果您的值有可能是NA,则需要明确检查:

if (is.na(variable) || variable == '') …

但是,从一开始就从数据中排除值通常是一个更好的主意NA,这样它们就不会传播到上述情况。

于 2013-07-15T13:03:52.633 回答
3

stringi包中有这个功能。

require(stringi)    
stri_isempty(c("A","")) 

你也可以从 github 安装这个包: https ://github.com/Rexamine/stringi

于 2013-07-15T13:07:44.460 回答
0

如果您希望同时检查并用NAs 替换这些值,通常情况下,只需使用dplyr::na_if()

variable <- ''
dplyr::na_if(variable, "")
#> [1] NA
于 2019-01-17T13:55:52.987 回答