J'ai un problème avec un boxplot. J'utilise une fonction appelée get_box_values () et je ne comprends pas pourquoi il peut trouver la valeur la plus élevée de mon vecteur.

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)

enter image description here

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

enter image description here

0
Damien Dotta 7 mai 2021 à 16:21

1 réponse

Meilleure réponse

C'est parce que 154401 en myvec2 est considéré comme une valeur aberrante.

boxplot.stats(myvec2)$out
#[1] 154401 
2
Ronak Shah 7 mai 2021 à 13:28