【问题标题】:Removing matrix rows if values of a cloumn are outliers如果列的值是异常值,则删除矩阵行
【发布时间】:2013-11-23 06:14:07
【问题描述】:

@aL3xa here 提供了一个非常酷且简单的功能,但这是针对矢量的。

我有一个矩阵,说第 2 列是一个变量,我想去掉异常值和相关的行。有一个包outliers 我想使用它的算法,但它们似乎也适用于向量。有什么建议吗?

谢谢

【问题讨论】:

    标签: r matrix outliers


    【解决方案1】:

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

    # @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),] 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-08
      • 1970-01-01
      • 2014-06-23
      • 2013-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-01
      相关资源
      最近更新 更多