Я согласен с zach, что подсчет в dplyr является лучшим решением. Я обнаружил, что это кратчайшая версия:
dplyr::count(theTable, Position) %>%
arrange(-n) %>%
mutate(Position = factor(Position, Position)) %>%
ggplot(aes(x=Position, y=n)) + geom_bar(stat="identity")
Это также будет значительно быстрее, чем переупорядочение уровней факторов заблаговременно, поскольку счетчик выполняется в dplyr, а не в ggplot, или с помощью table
.