2017-06-26 5 views
1

私はこのサイトを新規にプログラミングしているので、これが繰り返しの質問であれば、お詫び申し上げます。したがって、コードは次のとおりです。列プロットに複数のグループのSEMを追加するにはどうすればよいですか?

dataset %>% group_by(factor) %>% 
    summarise(`variable`= mean(`variable`)) %>% 
    ggplot(aes(factor, `variable`)) + 
    geom_col(aes(fct_relevel(factor, "level", after=4L))) 

簡略化のため、因子変数とレベル名を対応する列タイプに置き換えたばかりです。私はちょうどこのプロットにSEMを追加する方法を知る必要があります。ありがとう!

+0

は、私はあなたが平均値の標準誤差* * * *平均SEMを前提としています。私はバーで平均+セをプロットするのは悪い習慣と考えています。代わりに 'stat_summary'を試すことができます。 –

+0

私の分野(神経科学)では、出版物の数字が列グラフ上に平均+ semを持つのは一般的な場所です。 – Tony

+0

一般的なアドバイス:回答が有用な場合は、あなたがそれを受け入れるか投票してください。答えが十分でない場合は、欠落しているものについてコメントすることができ、その結果、改善される可能性があります。 –

答えて

0

mean_seからggplot2を使用できます。これは私たちの平均と標準誤差を計算します。出力はdata.frameなので、listにラップする必要があります。tidyr::unnestでネスト解除できます。その後、プロットは通常通り進行します。

library(dplyr) 
library(ggplot2) 
library(tidyr) 
# or simply use `library(tidyverse)` 

theme_set(theme_bw()) 


pdata <- iris %>% 
    group_by(Species) %>% 
    summarise(new = list(mean_se(Sepal.Length))) %>% 
    unnest(new) 


pdata %>% 
    ggplot(aes(Species, y)) + 
    geom_col(width = .5) + 
    geom_errorbar(aes(ymin = ymin, ymax = ymax)) 

あなたが要因の順番をしたい場合は、私は一度だけの変数を提供します。彼らははるかに少ないインクを使用するので、私は、しかしプロット点やエラーバーをお勧めします、とあなたが見ることができる。一般に

pdata %>% 
    ggplot(aes(fct_relevel(Species, "versicolor"), y, ymin = ymin, ymax = ymax)) + 
    geom_col(width = .5) + 
    geom_errorbar() 

:あなたはあまりにもaesへの最初の呼び出しに変数へのすべてのマッピングを置くことができます何が起こっているのかがはっきりしている。

ggplot(iris, aes(Species, Sepal.Length)) + 
    stat_summary() 
#> No summary function supplied, defaulting to `mean_se() 

関連する問題