在我尝试运行的脚本中,有时会填充变量''
(这意味着:完全为空),例如
variable <- ''
有谁知道检查变量是否具有值的方法''
?
is.null(variable)
似乎不起作用。''
不一样NULL
。
''
是一个空字符。这并不意味着“完全空”——确实如此NULL
。
要测试它,只需检查是否相等:
if (variable == '') …
但是,你得到的错误,
需要 TRUE/FALSE 的缺失值
意味着您的变量中存在缺失值,即NA
. if
无法处理缺失值。AnNA
是许多计算的结果,这些计算本身包含一个NA
值。例如,再次NA
与任何值(甚至NA
其自身)进行比较会产生NA
:
variable = NA
variable == NA
# [1] NA
既然if
期望TRUE
or FALSE
,它就无法处理NA
。如果您的值有可能是NA
,则需要明确检查:
if (is.na(variable) || variable == '') …
但是,从一开始就从数据中排除值通常是一个更好的主意NA
,这样它们就不会传播到上述情况。
在stringi
包中有这个功能。
require(stringi)
stri_isempty(c("A",""))
你也可以从 github 安装这个包: https ://github.com/Rexamine/stringi
如果您希望同时检查并用NA
s 替换这些值,通常情况下,只需使用dplyr::na_if()
:
variable <- ''
dplyr::na_if(variable, "")
#> [1] NA