どこかで私は非常に単純な間違いを犯しています。誤字脱字のご指摘ありがとうございます…
信頼区間とグループ平均を重ね合わせたバイオリン プロットを作成したいと思います。このすばらしい新しいパッケージの例とよく似ています。
CI のない一般的なバイオリン プロットは正常に動作します。
p <- ggplot(data=diamonds, aes(x=cut, y=price))
p + geom_violin(aes(x=cut, y=price)) +
geom_jitter(height = 0, width = 0.1, alpha = 0.05) +
geom_crossbar(stat="summary", fun.y=mean, fun.ymax=mean, fun.ymin=mean,
fatten=2, width=.5)
私の問題は、信頼区間を組み込むことです。
まず、必要な要約統計を作成します。
errbar_lims <- group_by(diamonds, cut) %>%
summarize(mean=mean(price), se=sd(price)/sqrt(n()),
upper=mean+(2*se), lower=mean-(2*se))
次に、次のようにプロットに追加することを考えましたgeom_errorbar
:
p <- ggplot(data=diamonds, aes(x=cut, y=price))
p + geom_violin(aes(x=cut, y=price)) +
geom_jitter(height = 0, width = 0.1, alpha = 0.05) +
geom_crossbar(stat="summary", fun.y=mean, fun.ymax=mean, fun.ymin=mean,
fatten=2, width=.5) +
geom_errorbar(aes(x= ymax=errbar_lims$upper, ymin=errbar_lims$lower),
stat='identity', width=.25)
しかし、ggplot のエラーは、プロットしようとしている 5 つのグループではなく、単一のグループの美学にマッピングしていることを知らせ続けます。
おそらく私の間違いは、最初にマッピングを設定した方法ですか?
アップデート
最初に投稿した後にいくつかのコメントを確認した後、完全なスクリプトは次のようになります。
errbar_lims <- group_by(diamonds, cut) %>%
summarize(mean=mean(price), se=sd(price)/sqrt(n()),
upper=mean+(2*se), lower=mean-(2*se))
p <- ggplot(data=diamonds, aes(x=cut, y=price))
p + geom_violin(aes(x=cut, y=price)) +
geom_jitter(height = 0, width = 0.1, alpha = 0.05) +
geom_crossbar(stat="summary", fun.y=mean, fun.ymax=mean, fun.ymin=mean,
fatten=2, width=.5) +
geom_errorbar(aes(x = cut, ymin = lower, ymax = upper), errbar_lims, inherit = FALSE)
それでもエラーが続く:
Error in FUN(X[[i]], ...) : object 'price' not found