Я хочу проверить, является ли x NULL / NA / NAN, и если это так, то выполнить функцию. Я также хочу выполнить функцию, если x не находится между минимальным и максимальным числом.
Если я сделаю:
#Checks if blank
isnothing <- function(x) {
any(is.null(x)) || any(is.na(x)) || any(is.nan(x))
}
x <- as.numeric(NULL)
min <- 25
max <- 45
#Actual function
if (isnothing(x) | !between(x,min,max)) {
#Do something
}
Я получаю страшный аргумент длины ноль в Если оператор "ошибка в R
Я также пытался:
x <- as.numeric(NULL)
min <- 25
max <- 45
if (isnothing(x) |(!isnothing(x) & !between(x,min,max))) {
#Do something
}
Это все еще не работает
---------- [РЕДАКТИРОВАТЬ] ---------
Благодаря ответу ниже у меня есть следующее:
#Checks if blank
isnothing <- function(x) {
any(is.null(x),is.na(x),is.nan(x))
}
y <- NULL
x <- as.numeric(y)
min <- 25
max <- 45
if (any(isnothing(y), !between(x,min,max))) {
print("Yep")
}else{
print("Nope")
}
Какие выходы "Да"
Работает, но выглядит грязно.