Заменить числовые значения на NA - PullRequest
0 голосов
/ 09 октября 2018

Я пишу функцию, которая принимает некоторый вектор и проверяет, является ли он числовым.Если это ложь, он заменит числовые значения на NA в операторе else.Я пытался использовать функцию 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 голосов
/ 09 октября 2018

Звучит так, будто вы ищете функцию, похожую на эту:

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)), вам не нужно == TRUE в предложении if.1006 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...