移除异常值-无法将对象强制键入“ double”

时间:2018-10-15 15:25:16

标签: outliers

我想从数据中删除异常值(类: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-h)* qs [i]中的错误:二进制运算符的非数字参数

  • 当我仅将函数应用于要忽略其异常值的变量(数据[c(15:114,127:226,262:445)])时,还会出现错误消息:

分位数中的错误(as.numeric(x),c(0.25,0.75),na.rm = na.rm,名称= FALSE,:   (列表)对象不能强制输入“ double”

请帮忙!

0 个答案:

没有答案