2

私の古い投稿への新しい追加:

誰かが私のために仕事をすることを期待していたように思われた場合は、お詫び申し上げます。それは間違いなく私の意図ではありませんでした。

dputを使用すると、出力から次のようになります。

    structure(list(Reported.Behavior = structure(c(3L, 6L, 2L, 1L, 
8L, 7L, 4L, 5L), .Label = c("Alcohol-marijuana", "Depression/Suicidal Ideation", 
"Homophobic Teasing", "Parent Communication", "Parent Support", 
"Peer Victimization", "Racism", "School climate"), class = "factor"), 
    Heterosexual.Mean = c(0.2, 0.45, 0.63, 0.8, 1.79, 0.61, 1.89, 
    3.31), Heterosexual.SD = c(0.66, 0.75, 0.67, 0.97, 0.49, 
    0.67, 0.95, 0.65), Questioning.Mean = c(0.84, 0.95, 1.07, 
    1.36, 1.63, 1.03, 1.79, 2.83), Questioning.SD = c(1.33, 1.18, 
    0.95, 1.51, 0.65, 0.82, 1.13, 0.93), LGB.Mean = c(0.57, 0.56, 
    0.77, 1, 1.72, 0.82, 1.84, 3.14), LGB.SD = c(1.13, 0.9, 0.82, 
    1.16, 0.56, 0.76, 1.07, 0.8), ANOVA.F.Value = c(375.94, 166.54, 
    176.54, 138.82, 49.13, 193.31, 5.63, 231.73), ANOVA.Effect.Size = c(0.05, 
    0.03, 0.03, 0.02, 0.01, 0.03, 0, 0.03)), .Names = c("Reported.Behavior", 
"Heterosexual.Mean", "Heterosexual.SD", "Questioning.Mean", "Questioning.SD", 
"LGB.Mean", "LGB.SD", "ANOVA.F.Value", "ANOVA.Effect.Size"), class = "data.frame", row.names = c(NA, 
-8L))

次のようなさまざまなggplotコマンドを試しました:(私のデータセット名=lgbtq)

ggplot(All.Means、aes(Mean.Values、Homophobic.Teasing、color = Mean.Values))+ geom_bar()

ただし、これは同性愛嫌悪のからかい手段のグラフのみを生成します。私は、すべての行動手段を同じグラフに配置する方法を見つけようとしています(つまり、セクシュアリティによって色分けされた横並びのバー)

1つの動作のみを含むcsvファイルを作成してデータを操作しようとしました。例えば:

ggplot(data = Peer.Victimization.Means, aes(x = Mean.Values, y = Peer.Victimization, color = Mean.Values)) + geom_bar(color = "black", fill = "red")

どちらでもうまくいきますが、データセット全体をそのまま活用する方法を見つけたいと思います。

'melt'関数について言及している投稿を見たことがありますが、これはまだ成功していません。:/どんな提案でも大歓迎です!

「R」は初めてですので、初心者ですのでご了承ください。コースの割り当てには、次の列タイトルを持つデータセットを使用しています。

報告された行動(8つの異なる行動名を含む)異性愛者の平均(各行動の値を含む)質問の平均(各行動の値を含む)LGB平均(各行動の値を含む)

このデータをグラフ化するためにggplot2を使用したいと思います。次のような棒グラフを作成できれば理想的です。

Y軸:「平均値」X軸:「報告された行動」、報告された行動ごとに、3つの別々のバーを並べて表示します(異性愛者の平均値、質問の平均値、LGBの平均値)。それなら、これらを色分けできれば理想的です。

したがって、全体として、Y軸は平均値を表し、X軸は報告されたすべての行動をリストし、それぞれに3つの異なるセクシュアリティを比較する3つのバーがあります。どんな助けでも大歓迎です!!!!

ジェシー

4

1 に答える 1

2

データを並べ替える:

library(reshape2)
mdat <- melt(dat[,1:7]) ## Drop ANOVA vars
mdat <- data.frame(mdat,colsplit(mdat$variable,"\\.",c("type","val")))
cdat <- dcast(mdat,Reported.Behavior+type~val)

絵を描きます。

library(ggplot2)
ggplot(cdat,aes(x=Reported.Behavior,y=Mean,fill=type))+
    geom_bar(stat="identity",position="dodge")+
    ## ugly!
    ## geom_linerange(aes(ymin=Mean-SD,ymax=Mean+SD),
    ##   position=position_dodge(width=0.9))+
    coord_flip()
  • coord_flip()ラベルが読みやすくなるので便利です。
  • +/-1 SD を示す行を追加するためのコメントアウトされたコードがここにあります -- SD が大きすぎてプロットが非常に醜いので追加しませんでした -- あなたはそれについて考えるべきです ...
  • 棒グラフはおなじみですが、geom_point()よりきれいかもしれません(「非データインク」の感覚タフテが少ない)

ここに画像の説明を入力

于 2013-02-03T20:22:04.153 に答える