R 循环数据帧并基于公共列绘制时间序列

R 循环数据帧并基于公共列绘制时间序列,r,plot,R,Plot,所以我有一个数据框,它有一个板ID、时间点、基板和两个读数的平均值(合成数据): 每个板ID有32个基板,每个板有7天的读数 理想情况下,我想用标准偏差条(时间间隔=1天)绘制10天期间(7次读数)相同时间序列上的590和750平均值 我能够生成一个这样的图表,但这是进入和排序的数据。然后,我采取了以下方法: library('Hmisc') x <- sortbiolog$Day[1:7] y <- sortbiolog$X750_Mean[1:7] sd <- sortb

所以我有一个数据框,它有一个板ID、时间点、基板和两个读数的平均值(合成数据):

每个板ID有32个基板,每个板有7天的读数

理想情况下,我想用标准偏差条(时间间隔=1天)绘制10天期间(7次读数)相同时间序列上的590和750平均值

我能够生成一个这样的图表,但这是进入和排序的数据。然后,我采取了以下方法:

library('Hmisc')

x <- sortbiolog$Day[1:7]
y <- sortbiolog$X750_Mean[1:7]
sd <- sortbiolog$X750_SD[1:7]

plot(x, y, type = "b", ylim = c(0,.3))
with(
  data = sortbiolog,
  expr = errbar(x, y, y + sd, y - sd, add = T, pch =1, cap = .01), main = "?-Cyclodextrin Substrate for MCBA15 001")

par(new=TRUE)

a <- sortbiolog$Day[1:7]
b <- sortbiolog$X590_Mean[1:7]
ab_sd <- sortbiolog$X590_SD[1:7]

plot(a, b, type = "b", ylim = c(0,.3))
with(
  data = sortbiolog,
  expr = errbar(a, b, b + ab_sd, b - ab_sd, add = T, pch =1, cap = .01, col="red", axis=FALSE))

legend('topright', legend=c("Mean 750", "Mean 590"), text.col=c("black", "red"))
library('Hmisc'))
x
然后在列表上应用该函数:

pdf('~/desktop/tmp.pdf')
par(mfrow = c(2,2))
p <- lapply(sp, f)
dev.off()
pdf(“~/desktop/tmp.pdf”)
par(mfrow=c(2,2))

p谢谢!经过一些小的调整,我得到了我想要的东西。这是一个巨大的帮助!
dat <- read.table(header = TRUE, text="Plate_ID    Day    Name           590_Mean    590_SD    750_Mean    750_SD
'MCBA15 001'  0      Cyclodextrin   0.217       0.012     0.161       0.012
'MCBA15 001'  1      Cyclodextrin   0.257       0.012     0.171       0.012
'MCBA15 001'  2      Cyclodextrin   0.257       0.012     0.171       0.012
'MCBA15 001'  3      Cyclodextrin   0.217       0.012     0.161       0.012
'MCBA15 001'  5      Cyclodextrin   0.257       0.012     0.171       0.012
'MCBA15 001'  7      Cyclodextrin   0.257       0.012     0.171       0.012
'MCBA15 001'  10     Cyclodextrin   0.217       0.012     0.161       0.012
'MCBA15 005'  0      Cyclodextrin   0.217       0.012     0.161       0.012
'MCBA15 005'  1      Cyclodextrin   0.257       0.012     0.171       0.012
'MCBA15 005'  2      Cyclodextrin   0.257       0.012     0.171       0.012
'MCBA15 005'  3      Cyclodextrin   0.217       0.012     0.161       0.012
'MCBA15 005'  5      Cyclodextrin   0.257       0.012     0.171       0.012
'MCBA15 005'  7      Cyclodextrin   0.217       0.012     0.161       0.012
'MCBA15 005'  10     Cyclodextrin   0.217       0.012     0.161       0.012
'MCBA15 001'  0      Lactose        0.217       0.012     0.161       0.012
'MCBA15 001'  1      Lactose        0.257       0.012     0.171       0.012
'MCBA15 001'  2      Lactose        0.217       0.012     0.161       0.012
'MCBA15 001'  3      Lactose        0.217       0.012     0.161       0.012
'MCBA15 001'  5      Lactose        0.217       0.012     0.161       0.012
'MCBA15 001'  7      Lactose        0.217       0.012     0.161       0.012
'MCBA15 001'  10     Lactose        0.217       0.012     0.161       0.012
'MCBA15 005'  0      Lactose        0.217       0.012     0.161       0.012
'MCBA15 005'  1      Lactose        0.257       0.012     0.171       0.012
'MCBA15 005'  2      Lactose        0.257       0.012     0.171       0.012
'MCBA15 005'  3      Lactose        0.217       0.012     0.161       0.012
'MCBA15 005'  5      Lactose        0.257       0.012     0.171       0.012
'MCBA15 005'  7      Lactose        0.217       0.012     0.161       0.012
'MCBA15 005'  10     Lactose        0.217       0.012     0.161       0.012")
f <- function(sortbiolog) {
  require('Hmisc')

  x <- sortbiolog$Day[1:7]
  y <- sortbiolog$X750_Mean[1:7]
  sd <- sortbiolog$X750_SD[1:7]

  plot(x, y, type = "b", ylim = c(0,.3))
  with(
    data = sortbiolog,
    expr = errbar(x, y, y + sd, y - sd, add = T, pch =1, cap = .01), main = "?-Cyclodextrin Substrate for MCBA15 001")

  par(new=TRUE)

  a <- sortbiolog$Day[1:7]
  b <- sortbiolog$X590_Mean[1:7]
  ab_sd <- sortbiolog$X590_SD[1:7]

  plot(a, b, type = "b", ylim = c(0,.3), ann = FALSE)
  with(
    data = sortbiolog,
    expr = errbar(a, b, b + ab_sd, b - ab_sd, add = T, pch =1, cap = .01, col="red"))

  legend('bottomright', legend=c("Mean 750", "Mean 590"), text.col=c("black", "red"))
}
sp <- split(dat, with(dat, interaction(Plate_ID, Name)))

sapply(sp, dim)

#      MCBA15 001.Cyclodextrin MCBA15 005.Cyclodextrin MCBA15 001.Lactose MCBA15 005.Lactose
# [1,]                       7                       7                  7                  7
# [2,]                       7                       7                  7                  7
pdf('~/desktop/tmp.pdf')
par(mfrow = c(2,2))
p <- lapply(sp, f)
dev.off()