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