こんにちは: 次のようなデータ セットがあります。私のデータセット、アルファ、オメガ、ゼータは問題の名前です。回答者は、その問題を最もうまく処理できる党首 (「Z」、「B」、または「C」) を評価するよう求められました。
問題ごとの回答の分布を示したいと思いますが、最初のファセットが特定の党首 (例: Z) の最高パーセントを示し、次に下に移動するようにファセットを並べて表示したいと思います。
以下のコードでは、アルファベットの長さ (例: アルファからゼータ) にまたがる変数名を特に選択し、シードを設定しません。レベルはパーティー リーダー Z が最も高いスコアを獲得した問題であり、2 番目のレベルはパーティー リーダー Z が 2 番目に高いスコアを獲得した問題です。
#load libraries
library(dplyr)
library(forcats)
library(tidyr)
library(ggplot2)
#In my data set these are issues, like taxes, health, etc.
alpha<-sample(c('Z', 'B', 'C'), replace=T,size=300)
omega<-sample(c('Z', 'B', 'C'), replace=T,size=300)
zeta<-sample(c('Z', 'B', 'C'), replace=T, size=300)
#make data frame
df<-data.frame(alpha, omega, zeta)
df %>%
#gather into an issue variable and a leader variable
gather(Issue, Leader) %>%
#count
count(Issue, Leader) %>%
#form groups for counting percent
group_by(Issue) %>%
#calculate percent
mutate(pct=n/sum(n)) %>%
#ungroup
group_by(Leader)%>%
#try reordering based on
mutate(Issue=fct_reorder(Issue, pct, .desc=F)) %>%
ggplot(., aes(x=Leader, y=pct))+geom_col()+facet_wrap(~Issue)