OK、このようなものをデータセットに適用する必要があります。置き換えて保存しないでください。そうしないと、データが破壊されます。ところで、データから外れ値を (ほとんど) 決して削除しないでください。
remove_outliers <- function(x, na.rm = TRUE, ...) {
qnt <- quantile(x, probs=c(.25, .75), na.rm = na.rm, ...)
H <- 1.5 * IQR(x, na.rm = na.rm)
y <- x
y[x < (qnt[1] - H)] <- NA
y[x > (qnt[2] + H)] <- NA
y
}
実際の動作を確認するには:
set.seed(1)
x <- rnorm(100)
x <- c(-10, x, 10)
y <- remove_outliers(x)
## png()
par(mfrow = c(1, 2))
boxplot(x)
boxplot(y)
## dev.off()
繰り返しになりますが、これを自分で行うべきではありません。=)
編集:na.rm = TRUE
デフォルトとして追加しました。
EDIT2:関数を削除quantile
し、添え字を追加したため、関数が高速になりました!=)
