在脚本中我试图运行有时是变量被填充''(意思是:完全空),例如
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从一开始就从数据中排除值,这样它们就不会传播到上述情况中.