关于在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 :(得分: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))