Ответ 1
Мне также не хватало такой функции и добавила ее в мой .Rprofile
века назад. Если кто-то знает о базовой функции, которая делает то же самое, что я также хочу знать.
is.blank <- function(x, false.triggers=FALSE){
if(is.function(x)) return(FALSE) # Some of the tests below trigger
# warnings when used on functions
return(
is.null(x) || # Actually this line is unnecessary since
length(x) == 0 || # length(NULL) = 0, but I like to be clear
all(is.na(x)) ||
all(x=="") ||
(false.triggers && all(!x))
)
}
Как отметил @shadow, NA
, NaN
и NULL
имеют разные значения, которые важны для понимания. Однако я считаю эту функцию полезной, когда я создаю функции, содержащие необязательные аргументы со значениями по умолчанию, которые я хочу разрешить пользователю подавлять, установив их в любое значение "undefined".
Одним из таких примеров является xlab
of plot
. Я никогда не запомню, если это xlab=NA
, xlab=FALSE
, xlab=NULL
или xlab=""
. Некоторые из них дают желаемый результат, а некоторые - нет, поэтому я нашел удобным использовать все вышеперечисленные функции при разработке кода, особенно если другие люди тоже его используют.