用NA

时间:2018-10-09 20:31:14

标签: r

我正在编写一个接受一些向量的函数,并检查它是否为数字。如果为假,它将在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)

1 个答案:

答案 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