【发布时间】:2018-12-05 21:12:32
【问题描述】:
我想使用这个 IQR 功能:
smooth_outliers <- function(x, na.rm = TRUE, ...) {
qnt <- quantile(x, probs=c(.25, .75), na.rm = na.rm, ...)
H <- 1.3 * IQR(x, na.rm = na.rm)
y <- x
y[x < (qnt[1] - H)] <- round(qnt[1] - H)
y[x > (qnt[2] + H)] <- round(qnt[2] + H)
y
}
在下面的df 上,在每个特定键的total 列上,基于key 列:
key total
US4ZNB 10
US4ZNB 1075
US4ZNB 10000
US4ZNB 1138
US4ZNB 1156
US4YYM 1114
US4YYM 1072
US4YYM 50
US4YYM 1181
US4YYM 8000
JM4YYM 15000
JM4YYM 2000
JM4YYM 100
JM4YYM 2200
JM4YYM 2300
【问题讨论】:
-
也许我不明白你的问题。如果您的数据在 df 中,则 df$smooth
-
你是对的,我改变了df,所以现在有异常值,但我的问题是每个键都使用这个函数,所以它应该分别在3个键上工作,因为每个键都应该是不同的分布。例如对于键:
US4ZNB该函数应该对它的 5 个值起作用,并且对于每个键也是如此。