2014-01-24 4 views
0

у меня есть кадр данных, который выглядит как этотСортировать фаска по группам

df <- data.frame(id=rep(c(1,5,2,6,4,3), each=5), 
       group=rep(c(1,2,2,2,1,1), each=5), 
       var1=runif(30)) 

теперь я хочу построить var1 с помощью ggplot и огранку сюжет по id, но сортировать грани по groupid в group). Полагаю, что я должен сделать id фактором с уровнями, которые аккуратно сортируются по group, но я не могу понять, как это сделать элегантно.

+2

Искать что-то вдоль линий "сортировки уровней фактора". Этот вопрос был рассмотрен ранее. –

+0

См. [Это] (http://trinkerrstuff.wordpress.com/2012/10/15/how-do-i-re-arrange-ordering-a-plot/) и [это] (http: // trinkerrstuff. wordpress.com/2013/08/14/how-do-i-re-arrange-ordering-a-plot-revisited/?relatedposts_exclude=527) –

ответ

1
# sort by group and id 
df_sorted <- df[with(df, order(group, id)), ] 
# reorder factor levels 
df_sorted$id <- factor(df_sorted$id, levels=unique(df_sorted$id)) 
# plot something 
ggplot(df_sorted, aes(var1)) + facet_wrap(~id) + geom_density() 

enter image description here

+0

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

+0

Это не так: я не указал 'order = TRUE', не так ли? Я переупорядочил уровни факторов, но фактор не стал упорядоченным. – tonytonov

+0

Комментарий предназначен для зрителей. Не для вашего кода. –

Смежные вопросы