judge if an object is or not a falsy value. This includes:
empty value, empty string ""
, NULL
, NA
, length of 0 and FALSE
itself
notFalsy(x) isFalsy(x) emptyIsFalse(x)
x | any R object |
---|
NA
, ""
, NULL
, length(0)
, nchar == 0
and FALSE
will return
FALSE
, otherwise TRUE
in notFalsy
and the opposite in isFalsy
R does not have good built-in methods to judge falsy values and these kind
of values often cause errors in if
conditions, for example
if(NULL) 1 else 2
will cause error. So this function will be useful to
handle this kind of situations: if(notFalsy(NULL)) 1 else 2
.
not working on S4 class objects.
isFalsy
is the reverse of notFalsy
: isFalsy(x)
= !notFalsy(x)
emptyIsFalse
is the old name for notFalsy
Useful for if statement. Normal empty object in if will spawn error. Wrap the
expression with emptyIsFalse
can avoid this. See examples
notFalsy(NULL) #> [1] FALSE notFalsy(NA) #> [1] FALSE notFalsy("") #> [1] FALSE try(`if(NULL) "not empty" else "empty"`) # this will generate error #> Error in try(`if(NULL) "not empty" else "empty"`) : #> object 'if(NULL) "not empty" else "empty"' not found if(notFalsy(NULL)) "not falsy" else "falsy" # but this will work #> [1] "falsy" # Similar for `NA`, `""`, `character(0)` and more isFalsy(NULL) #> [1] TRUE isFalsy(NA) #> [1] TRUE isFalsy("") #> [1] TRUE