Как изменить порядок меток граней в ggplot (пользовательские метки обертки граней)

Привет, я построил графический сюжет, используя ggplot в R, и вот сюжет

http://i.stack.imgur.com/5qXF1.png

У меня есть проблема: грани (метки) сортируются в алфавитном порядке (например: E1, E10, E11, E13, E2, E3, I1, I10, I2), но мне нужно, чтобы они были на заказ, например E1, I1, E2 , I2, E3, E10, I10, E11, E13.

Как я могу это сделать ?

Не полагайтесь на порядок по умолчанию уровней, налагаемых factor() или внутренне ggplot если переменная группировки, которую вы поставляете, не является фактором. Задайте уровни явно сами.

 dat <- data.frame(x = runif(100), y = runif(100), Group = gl(5, 20, labels = LETTERS[1:5])) head(dat) with(dat, levels(Group)) 

Что, если я хочу их в этом произвольном порядке?

 set.seed(1) with(dat, sample(levels(Group))) 

Чтобы сделать это, установите уровни так, как вы хотите.

 set.seed(1) # reset the seed so I get the random order form above dat <- within(dat, Group <- factor(Group, levels = sample(levels(Group)))) with(dat, levels(Group)) 

Теперь мы можем использовать это, чтобы панели были нарисованы в том порядке, в котором мы хотим:

 require(ggplot2) p <- ggplot(dat, aes(x = x)) + geom_bar() p + facet_wrap( ~ Group) 

Что производит:

обернутые грани

Просто работа над подобной проблемой. У меня есть уровни, которые по умолчанию выглядят так:

  [1] "A1" "A10" "A2" "A3" "A4" "A5" "A6" "A7" "A8" "A9" [11] "B1" "B2" "B3" "B4" "B5" "B6" "B7" "B8" "B9" 

Обратите внимание, что второй уровень неуместен из-за алфавитного порядка.

Это то, что я делаю, чтобы исправить порядок:

 reorder(factor(fct), fct %>% str_replace("([[:alpha:]]+)", "\\1|") %>% str_split("\\|") %>% sapply(function(d) sprintf("%s%02d", d[1], as.integer(d[2]))), function(x) x[1]) 

Он заменяет уровни, такие как «A1» на «A01», а затем переписывает их. Я уверен, что вы можете сделать это намного эффективнее, но это делает работу.

Он может быть адаптирован для решения исходной проблемы.

  • Доступ к URL-адресу и чтение данных с помощью R
  • Импорт файлов Excel в R, xlsx или xls
  • Удалить «" из значений csv и изменить имена столбцов при записи в CSV
  • Непосредственное создание фиктивной переменной, заданной в разреженной матрице в R
  • Не упускайте нулевой счет: уклонившийся барж
  • Как создать список фреймов данных?
  • Ярлыки многострочной оси с вложенными переменными группировки
  • Выращивание кадра данных эффективным образом
  • Как загрузить пакеты в R автоматически?
  • Зацикливание через t.tests для подмножеств фрейма данных в r
  • Как я могу заставить rJava использовать новую версию java для osx?
  • Давайте будем гением компьютера.