检查对象在r中是否为null或空字符串的最佳方法
我想检查变量是检查对象在r中是否为null或空字符串的最佳方法,r,R,我想检查变量是'还是'NULL'。我做到了以下几点: x =NULL #or '' if(is.null(x) || x=='') { print('nothing') } else { print(x) } 我的问题是,检查这种情况的最佳方法是什么?我觉得有更好的方法可以做到这一点…与其检查它是否为NULL或空字符串,不如检查它的长度是否为非零,是否为非空字符串。然后,if的第一个分支将处理主要情况,else分支将处理不太常见的情况,这似乎比其他方法更容易遵循 if (le
'
还是'NULL'。我做到了以下几点:
x =NULL #or ''
if(is.null(x) || x=='') {
print('nothing')
} else {
print(x)
}
我的问题是,检查这种情况的最佳方法是什么?我觉得有更好的方法可以做到这一点…与其检查它是否为NULL或空字符串,不如检查它的长度是否为非零,是否为非空字符串。然后,
if
的第一个分支将处理主要情况,else
分支将处理不太常见的情况,这似乎比其他方法更容易遵循
if (length(x) && nzchar(x)) x else NA
一个缺点是
nzhar(NA)&&length(NA)
的计算结果为TRUE
。我知道这不是想要的OP。但那是一个不同的条件,不是问题中要求的条件。使用any(nzhar(x))
可能更安全;在某些情况下,当你给它一个要测试的逻辑向量时,R会抱怨。这取决于需要什么。如果需要一个标量,并且给出了一个向量,那么最好提出一个错误。