在脚本中我试图运行有时是变量被填充''
(意思是:完全空),例如
variable <- ''
Run Code Online (Sandbox Code Playgroud)
有谁知道检查变量是否有值的方法''
?
is.null(variable)
似乎不起作用.''
是不一样的NULL
.
Kon*_*lph 22
''
是一个空角色.它不意味着"完全空" -这确实是NULL
.
要测试它,只需检查是否相等:
if (variable == '') …
Run Code Online (Sandbox Code Playgroud)
如果要检查变量是否存在,则需要使用... exists
:
if (exists('variable')) …
Run Code Online (Sandbox Code Playgroud)
但实际上exists
在普通代码中很少有用例,因为作为代码的作者,你应该知道哪些变量存在而哪些不存在.相反,它主要用于库函数.
但是,你得到的错误,
缺少需要TRUE/FALSE的值
不不意味着变量不存在.相反,if
不能处理缺失值 - 即NA
.的NA
尽可能多的计算其本身含有的结果发生NA
的值.例如,与NA
任何值(甚至NA
自身)相比,再次产生NA
:
variable = NA
variable == NA
# [1] NA
Run Code Online (Sandbox Code Playgroud)
由于if
预期TRUE
或FALSE
,它无法处理NA
.如果您的值可能存在NA
,则需要明确检查:
if (is.na(variable) || variable == '') …
Run Code Online (Sandbox Code Playgroud)
但是,通常最好NA
从一开始就从数据中排除值,这样它们就不会传播到上述情况中.