Удалить выбросы - объект не может быть приведен к типу 'double' - PullRequest
0 голосов
/ 15 октября 2018

Я хочу удалить выбросы из моих данных (класс: data.frame).Это мой код функции.

remove_outliers <- function(x, na.rm = TRUE) {
qnt <- quantile(x, probs=c(.25, .75), na.rm = T)
H <- 1.5 * IQR(x, na.rm =  T)
y <- x
y[x < (qnt[1] - H)] <- NA
y[x > (qnt[2] + H)] <- NA
y
}

data_withoutoutliers <- remove_outliers(data)
data_withoutoutliers <- remove_outliers(data[c(15:114,127:226,262:445)])
  • Однако, когда я применяю свою функцию к своим данным, появляется сообщение об ошибке:

Ошибка в (1 - ч) * qs [i]: нечисловой аргумент для двоичного оператора

  • И когда я применяю функцию только к переменным, в которых я хочу опустить выбросы (data [c (15: 114,127:226,262: 445)]), также есть сообщение об ошибке:

Ошибка в квантиле (as.numeric (x), c (0.25, 0.75), na.rm = na.rm, имена= FALSE,: (список) объект не может быть приведен к типу 'double'

Любая помощь, пожалуйста!

...