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”)给出标准误差的值。任何快速的可能性,所以我们可以为矩阵中的任何行(甚至可能是所有行)生成图?

谢谢

4

1 回答 1

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))

在此处输入图像描述

于 2014-02-25T12:01:28.903 回答