我正在编写一个接受一些向量的函数,并检查它是否为数字。如果为假,它将在else语句中将数值替换为NA。我尝试过以多种方式使用is.numeric()函数,但运气不佳。任何帮助,将不胜感激!
test <- function(x){
if(is.numeric(x) == TRUE){
mean.x <- mean(x)
vectorlist <- list(mean.x)
}
else
return(vectorlist)
}
x <- c("a", 1, 2)
test(x)
答案 0 :(得分:1)
听起来您正在寻找一个大致如下的函数:
test <- function(x){
if(is.numeric(x)){
return(mean(x))
}
else{
x[!is.na(as.numeric(x))] <- NA
return(x)
}
}
x <- c("a", 1, 2)
test(x)
请注意,if (is.numeric(x))
就足够了,if子句中不需要== TRUE
。