2014-02-25 71 views
1

在R中繪製誤差條和經常提供許多解決方案方面進行了許多討論。 我想知道,如果這將有可能做一個與複製矩陣數據。繪製矩陣的標準錯誤(帶有複製數據)

例如:

dataset <- read.table(text="Cond1.Rep1 Cond1.Rep2 Cond1.Rep3 Cond2.Rep1 Cond2.Rep2 Cond2.Rep3 
4 6 10 10 6 4 
5 7 5 10 4 5 
4 8 4 2 4 2 
6 4 8 5 3 3 
7 5 8 6 4 5 
7 5 8 8 7 5 
8 5 9 9 8 5 
4 5 4 3 8 7 
6 6 4 5 4 2 
4 6 7 7 8 3", head=TRUE) 

財產以後像計算另一矩陣,這將使根據羣組(「COND1」和「COND2」)爲標準誤差的值。任何快速的可能性,所以我們可以爲矩陣(或甚至所有行)中的任何行生成圖表?

感謝

+0

什麼樣的標準錯誤?每個條件的重複的 – PascalVKooten

+0

。 – user1844052

+0

是你的問題'如何計算std錯誤'或'如何繪製矩陣的所有行/列?對於後者,請參閱'?matplot –

回答

1

你應該先重塑你的數據:

library(reshape2) 
dat <- melt(dataset) 
dat <- cbind(dat, 
      do.call(rbind, strsplit(as.character(dat$variable), ".", fixed=TRUE))) 
names(dat)[3:4] <- c("Cond", "Rep") 
dat$sample <- seq_len(nrow(dataset)) 

aggregate(value~sample+Cond, data=dat, FUN=function(x) sd(x)/sqrt(length(x))) 
# sample Cond  value 
# 1  1 Cond1 1.7638342 
# 2  2 Cond1 0.6666667 
# 3  3 Cond1 1.3333333 
# 4  4 Cond1 1.1547005 
# 5  5 Cond1 0.8819171 
# 6  6 Cond1 0.8819171 
# 7  7 Cond1 1.2018504 
# 8  8 Cond1 0.3333333 
# 9  9 Cond1 0.6666667 
# 10  10 Cond1 0.8819171 
# 11  1 Cond2 1.7638342 
# 12  2 Cond2 1.8559215 
# 13  3 Cond2 0.6666667 
# 14  4 Cond2 0.6666667 
# 15  5 Cond2 0.5773503 
# 16  6 Cond2 0.8819171 
# 17  7 Cond2 1.2018504 
# 18  8 Cond2 1.5275252 
# 19  9 Cond2 0.8819171 

library(ggplot2) 
ggplot(dat, aes(x=factor(sample), y=value, colour=Cond)) + 
    stat_summary(fun.data=mean_sdl, mult=1/sqrt(3)) 

enter image description here

+0

這是完美的,如果我們可以將它們彼此並排(而不是像這個情節那樣結合條件)作爲條形圖,那將是非常棒的。儘管如此,我仍然會試試! – user1844052

+1

這只是你如何使用ggplot2來做到這一點的問題。這很容易。 – Roland