0

私はRの初心者で、データの要約に問題があります。インターネットのチュートリアルに従おうとしましたが、残念ながら常にエラーが発生しました。

応答係数が「濃度」であるマトリックスがあります

私の実験では、3 つの処理 (a、b、c) と、各処理に対して 5 つの複製があります。そして、8 つの製品 (PRO1 - PRO8) の濃度を取得します。

     TRA PRO1 PRO2 PRO3 PRO4 PRO5 PRO6 PRO7 PRO8
1    a   83   85   59   46   64    8   76   74
2    a   61   71   73   15   87   95   61    9
3    a   78   12   35   23   56   95   67   11
4    a   48   30   75   94   57   15   58   58
5    a   51   92   30   60   22    9   64    5
6    b   46   17   66   79   30   99    3   38
7    b   40   25   11   18   66   25   55   38
8    b   34   94   83   63   30  100   56   31
9    b    3   81   26   73   32   56    4   12
10   b   18   40   13   51    4   44   75    4
11   c   68   28   20   15   13   56    5   82
12   c   50   85   65   85   13   13   34   69
13   c   75   37   11   55   58   69   85   67
14   c   71   30   83   46   87   67   59   70
15   c   10   76   50   20   98   81   57   76

summaryBy、doBy、およびこれらの関数を試しましたが、うまくいきませんでした。

これらの関数を実行して平均 sd を取得するために行列を並べ替えるにはどうすればよいですか? 私の意図は、各製品の処理の違いを確認するために、エラー バーを含む棒グラフを作成することです。

ありがとう

4

1 に答える 1

1

あなたは試すことができます

library(ggplot2)
library(dplyr)
library(tidyr)

gather(df1, Var, Val, -TRA) %>% 
              group_by(TRA, Var) %>% 
              summarise(Mean=mean(Val), SD=sd(Val)) %>% 
              ggplot(., aes(x=TRA, y=Mean, fill=Var))+
              geom_bar(position=position_dodge(), stat='identity')+
              geom_errorbar(aes(ymin=Mean-SD, ymax=Mean+SD), width=.2, 
                          position=position_dodge(.9))

データ

df1 <- structure(list(TRA = c("a", "a", "a", "a", "a", "b", "b", "b", 
"b", "b", "c", "c", "c", "c", "c"), PRO1 = c(83L, 61L, 78L, 48L, 
51L, 46L, 40L, 34L, 3L, 18L, 68L, 50L, 75L, 71L, 10L), PRO2 = c(85L, 
71L, 12L, 30L, 92L, 17L, 25L, 94L, 81L, 40L, 28L, 85L, 37L, 30L, 
76L), PRO3 = c(59L, 73L, 35L, 75L, 30L, 66L, 11L, 83L, 26L, 13L, 
20L, 65L, 11L, 83L, 50L), PRO4 = c(46L, 15L, 23L, 94L, 60L, 79L, 
18L, 63L, 73L, 51L, 15L, 85L, 55L, 46L, 20L), PRO5 = c(64L, 87L, 
56L, 57L, 22L, 30L, 66L, 30L, 32L, 4L, 13L, 13L, 58L, 87L, 98L
), PRO6 = c(8L, 95L, 95L, 15L, 9L, 99L, 25L, 100L, 56L, 44L, 
56L, 13L, 69L, 67L, 81L), PRO7 = c(76L, 61L, 67L, 58L, 64L, 3L, 
55L, 56L, 4L, 75L, 5L, 34L, 85L, 59L, 57L), PRO8 = c(74L, 9L, 
11L, 58L, 5L, 38L, 38L, 31L, 12L, 4L, 82L, 69L, 67L, 70L, 76L
)), .Names = c("TRA", "PRO1", "PRO2", "PRO3", "PRO4", "PRO5", 
"PRO6", "PRO7", "PRO8"), class = "data.frame", row.names = c("1", 
"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", 
"14", "15"))
于 2015-03-15T12:10:50.270 に答える