Вы можете отсортировать страны по среднему gdpPercap
, максимальному или другому критерию, а затем установить порядок коэффициентов для country
на основе этого. Например, используя среднее значение:
gapminder %>%
filter(country %in% country_europe) %>%
mutate(country = reorder(country, desc(gdpPercap))) %>%
filter(year > 1990) %>%
group_by(country) %>%
mutate(avg.gdp = mean(gdpPercap, na.rm=TRUE)) %>%
ungroup %>%
arrange(avg.gdp) %>%
mutate(country=factor(country, levels=unique(country)) %>%
ggplot(... etc.
. Чтобы ответить на ваш комментарий: Мы хотим, чтобы страны были упорядочены по их среднему (или максимальному, или последнему, и т. Д., c.) ВВП на душу населения по сравнению с период времени данных. Поэтому мы вычисляем это как новый столбец, а затем упорядочиваем данные по этому столбцу (arrange(avg.gdp)
в данном случае).
Рамка данных теперь упорядочена таким образом, что каждая страна сначала появляется в данных в порядке ее среднего ВВП на душу населения, что является порядком, который мы хотим для аспектов. Чтобы установить это как порядок для country
, мы конвертируем его в коэффициент, а затем используем unique(country)
для установки уровней фактора. Это работает, потому что unique
возвращает вектор, который поддерживает текущий порядок первого появления данного значения (например, попробуйте запустить unique(c(3,6,3,6,2,2,6))
).