首页 > 解决方案 > 使用 boxplot.stats 函数查找向量的最大值

问题描述

我对箱线图有疑问。我正在使用一个名为 get_box_values() 的函数,但我不明白为什么它可以找到我的向量的最大值。

require(stats)

get_box_values <- function(x) {
  boxplot.stats(x)$stats %>% t() %>% cbind(round(mean(x),1)) %>% cbind(boxplot.stats(x)$n) %>% as.data.frame() %>% 
    setNames(c("low", "q1", "median", "q3", "high", "mean", "obs"))
}

# With myvec, it's ok
myvec <- c(5,10,20,100,50)
get_box_values(myvec)

在此处输入图像描述

# With myvec2, it doesn't work for the highest value (154401)
myvec2 <- c(26195,25086,154401,35287,13500)
get_box_values(myvec2)

在此处输入图像描述

标签: rboxplot

解决方案


这是因为 154401 inmyvec2被认为是异常值。

boxplot.stats(myvec2)$out
#[1] 154401 

推荐阅读