Функция reorder() в R
Только начал изучать R и наткнулся на вот этот код.
dat <- us_contagious_diseases %>% filter(year == 1967 & disease=="Measles" & count>0 & !is.na(population)) %>%
mutate(rate = count / population * 10000 * 52 / weeks_reporting) %>%
mutate(state = reorder(state, rate))
Одно понять я не могу, как работает функция reorder? Интуитивно мне было ясно что в итоге столбцы state должны были быть отсортированы по значениям rate, но как бы я не проверял таблицу этого не происходило!
Однако после того как я создаю график:
dat %>% ggplot(aes(states, rate)) +
geom_bar(stat="identity") +
coord_flip()
Все чудесным образом сортируется. Скажите мне пожалуйста, по какому принципу это работает?
Edit 1:
Все же нашел кое-какой ответ на вопрос. Как оказалось сортируются не значения, а level-а по которым уже сортируется граф. Однако, мне все еще интересно какое же значение возвращает эта функция reorder?
Ответы (1 шт):
Сами ответили - возвращает отсортированный результат применения функции к факторной переменной.
bymedian <- with(InsectSprays, reorder(spray, count, median))
Результат - сортировка spray по средним значениям count. Хотите просто по значениям - проще использовать arrange