によってのは、私は例のデータフレームを持っているとしましょう:並べ替えggplot barplot x軸facet_wrap
frame <-
data.frame(group = c(rep(1, 3), rep(2, 3)),
idea = c(1, 2, 3, 1, 2, 4),
value = c(10000, 5000, 50, 5000, 7500, 100),
level = sample(c("rough", "detailed"), 6, TRUE))
私はそれが価値だが注文したグループ内の各アイデアを価値のbarplotをしたいと思います。私は上記のtop_ideas
データフレームではその順序に従って、因子レベルを設定して、最終的なdplyr
ラインでこの
library(dplyr)
library(ggplot2)
top_ideas <-
frame %>%
group_by(group) %>%
arrange(group, desc(value))
frame %>%
group_by(group) %>%
mutate(idea = idea %>% factor(levels = top_ideas$idea)) %>%
ggplot(aes_string(x = "idea", y = "value", fill = "level")) +
geom_bar(stat = "identity") +
theme(legend.position = "bottom",
axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
facet_wrap(~group, scales = "free")
のmutateなどの近くに取得することができます。残念ながら、アイデアの番号1と2はグループ1と2の両方で共有されているため、順序は最初のグループによって設定されます。私がしたいのですがどのような
は、各グループの独立した両端面でのアイデアの順序です。 dplyr
文字列でどうすればいいですか?私は何か簡単なものを逃しています
これはサンプルデータであることに注意してください。実際のデータははるかに大きく、共有されるグループやアイデアが多く含まれています。ここで
良い、簡単な回避策。また、私を「団結して」紹介してくれてありがとう! – Steven
@Steven Opps、私は 'library(tidyr)'を追加するのを忘れました。 「団結」は「整頓」からのものです。また、 'separate'と' extract'をチェックして、列を2つ以上の列に分離します。 – useR
問題ありません。私はちょうど '団結して'それは 'tidyr'から見た。しかし、他のfxのヒントをありがとう。それは助けになるでしょう。 – Steven