Р: Как вы упорядочиваете графики ошибок по дисперсии?

Можно ли упорядочить графики ошибок в R по их дисперсии? Чтобы они были от наибольшей дисперсии к наименьшей?

Код:

library(ggplot2)

df <- ToothGrowth
df$dose <- as.factor(df$dose)
head(df, 3)

library(dplyr)
df.summary <- df %>%
  group_by(dose) %>%
  summarise(
    sd = sd(len, na.rm = TRUE),
    len = mean(len)
  )
df.summary


f <- ggplot(
  df.summary, 
  aes(x = dose, y = len, ymin = len-sd, ymax = len+sd)
  )

f + geom_pointrange()

# Standard error bars
f + geom_errorbar(width = 0.2) +
  geom_point(size = 1.5)

OUTPUT

Любая помощь вообще будет принята с благодарностью!

7 лайфхаков для начинающих Python-программистов
7 лайфхаков для начинающих Python-программистов
В этой статье мы расскажем о хитростях и советах по Python, которые должны быть известны разработчику Python.
1
0
20
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Продолжите конвейер, принуждая sd к упорядоченному фактору с порядком, заданным числовым sd. Затем постройте, как в вопросе. Все, что нужно изменить, это mutate ниже.

df.summary <- df %>%
  group_by(dose) %>%
  summarise(
    sd = sd(len, na.rm = TRUE),
    len = mean(len)
  ) %>%
  mutate(i = order(sd, decreasing = TRUE),
         dose = ordered(dose, levels = dose[i])) %>%
  select(-i)

Удивительно, большое спасибо!

Detr4 22.04.2022 22:56

Другие вопросы по теме