我想这非常简单,但我似乎找不到答案。R - 如何在IF语句中测试字符(0)
我正在写IF语句,但测试是如果对象返回character(0)
值。我不知道如何在声明中处理character(0)
。
假设Test <- character(0)
或值:
if (identical(Pols4,character(0))) {
print('Empty')
} else {
print('Not Empty')
}
它似乎仍然没有工作.....
我想这非常简单,但我似乎找不到答案。R - 如何在IF语句中测试字符(0)
我正在写IF语句,但测试是如果对象返回character(0)
值。我不知道如何在声明中处理character(0)
。
假设Test <- character(0)
或值:
if (identical(Pols4,character(0))) {
print('Empty')
} else {
print('Not Empty')
}
它似乎仍然没有工作.....
使用identical
功能进行检查。
a <- character(0)
identical(a, character(0)) # returns TRUE
identical(a, "") # returns FALSE
identical(a, numeric(0)) # returns also FALSE
直到我使用'identical(a,as.Date(character(0))'后,我仍然获得'FALSE'返回值,因为即使在投射之后,该值显示为'character(0) – 2017-03-20 19:53:26
如果你给Date赋了一个值,那么它与'character(0)'不一样,所以这种行为非常好,'quote(character(0))'也被显示出来作为控制台中的“字符(0)”,并且与“字符(0)”明确地不相同 – 2017-03-21 09:46:01
我不是在抱怨,我只是分享以防其他人有类似的情况。 – 2017-03-23 13:42:04
'length(character(0))'为零,所以'if(length(x))'应该这样做。 – tonytonov 2014-09-03 08:59:48
没有抱歉,它没有。 'length(NULL)'也是零,'length(numeric(0))'也是。 – 2014-09-03 09:04:35
将您的第一行更改为'if(相同(测试,字符(0)))'不起作用? – 2014-09-03 09:27:57