【发布时间】:2013-11-23 06:14:07
【问题描述】:
@aL3xa here 提供了一个非常酷且简单的功能,但这是针对矢量的。
我有一个矩阵,说第 2 列是一个变量,我想去掉异常值和相关的行。有一个包outliers 我想使用它的算法,但它们似乎也适用于向量。有什么建议吗?
谢谢
【问题讨论】:
@aL3xa here 提供了一个非常酷且简单的功能,但这是针对矢量的。
我有一个矩阵,说第 2 列是一个变量,我想去掉异常值和相关的行。有一个包outliers 我想使用它的算法,但它们似乎也适用于向量。有什么建议吗?
谢谢
【问题讨论】:
从您链接的问题中提取一些代码:
# @aL3xa's function
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 <- as.data.frame(matrix(rnorm(10000),ncol=100)) # 100 x 100 data frame
y <- remove_outliers(x[,2]) # look for outliers in columns 2
newx<-cbind(x,y)
newx2<-x[!is.na(x$y),]
【讨论】: