【问题标题】:How can I identify the labels of outliers in a R boxplot?如何识别 R 箱线图中异常值的标签?
【发布时间】:2012-06-23 11:06:23
【问题描述】:

R boxplot 函数是查看数据的一种非常有用的方法:它可以快速为您提供数据的大致位置和方差以及异常值数量的可视化摘要。另外,我想识别异常值,以便快速发现数据集中的问题。

可以使用myplot$out 访问这些异常值的值。不幸的是,这些异常值的标签似乎不可用。有一些包旨在在绘图本身上显示标签:http://www.r-statistics.com/2011/01/how-to-label-all-the-outliers-in-a-boxplot/,但它们效果不佳,我只想列出这些异常值,我不需要它们出现在绘图本身上。

有什么想法吗?

【问题讨论】:

    标签: r plot outliers


    【解决方案1】:

    如果输入的数据是带有命名元素的向量,箱线图会保留名称。

    set.seed(2)
    x <- rlnorm(26)
    names(x) <- LETTERS
    outliers <- boxplot(x, plot=FALSE)$out
    outliers
           I        O        U        X 
    7.275219 5.943089 8.091541 7.061459 
    

    【讨论】:

      【解决方案2】:

      您自己完成了大部分艰苦的工作。剩下的就是比较:

      ##First create some data 
      ##You should include this in your question)
      set.seed(2)
      dd = data.frame(x = rlnorm(26), y=LETTERS)
      

      获取异常值

      outliers = boxplot(dd$x, plot=FALSE)$out
      

      从原始数据框中提取异常值

      dd[dd$x %in% outliers,]
      

      进一步说明:

      变量dd$x是26个数字的向量。变量 outliers 包含异常值的值(只需在 R 控制台中输入 dd$xoutliers)。命令

      dd$x %in% outliers
      

      匹配 dd$x 和异常值的值,即:

      [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE <snip>
      

      方括号符号dd[dd$x %in% outliers,]返回数据框dd的行,其中dd$x %in% outliers返回TRUE

      【讨论】:

        【解决方案3】:

        我建议 which(x &lt; myplot$stats[1] | x &gt; myplot$stats[5]) 其中 x 是您的数据。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-03-21
          • 1970-01-01
          • 2014-08-21
          • 1970-01-01
          • 2021-05-05
          • 2013-02-17
          • 1970-01-01
          • 2021-11-06
          相关资源
          最近更新 更多