R 如果克隆的值是异常值,则删除矩阵行

R 如果克隆的值是异常值,则删除矩阵行,r,matrix,outliers,R,Matrix,Outliers,@aL3xa提供了一个非常酷且简单的函数,但这是针对向量的 我有一个矩阵,比如第2列,是一个变量,我想去掉离群值和相关行。有一个包,我想使用它的算法,但他们似乎是一个向量太。有什么建议吗 感谢您从您链接的问题中提取一些代码: # @aL3xa's function remove_outliers <- function(x, na.rm = TRUE, ...) { qnt <- quantile(x, probs=c(.25, .75), na.rm = na.rm, ...)

@aL3xa提供了一个非常酷且简单的函数,但这是针对向量的

我有一个矩阵,比如第2列,是一个变量,我想去掉离群值和相关行。有一个包,我想使用它的算法,但他们似乎是一个向量太。有什么建议吗


感谢您从您链接的问题中提取一些代码:

# @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),] 
#@aL3xa函数
删除异常值