我有很多主题的大量数据。数据包含以下列:
ID TIME CONC
7030104 2.0 0.536
7030104 2.5 1.320
7030104 3.0 1.460
7030104 4.0 5.070
7030104 5.0 17.300
7030104 6.0 38.600
70304 8.0 0.589
70304 10.0 35.400
70304 12.0 29.400
70304 24.0 10.900
70304 36.0 3.260
70304 48.0 1.290
我想为每个主题ID绘制一个单独的图(CONC与TIME),并自动将其保存到具有主题ID号的工作目录中。
我正在使用简单的绘图,但我需要帮助我如何将其应用于所有主题ID并自动将绘图保存到我的工作目录中。
setwd("..")
plotobj <- NULL
plotobj <- plot(sub$TIME,sub$CONC,type="b")
我正在使用RStudio
非常感谢您的协助!
答案 0 :(得分:0)
首先尝试获取ID列表
id_arr = unique(sub$ID)
之后,保存每个可能ID的图表
for(i in id_arr) {
sub_id = subset(sub, ID == i)
jpeg(paste(i, ".jpg", sep=""))
plot(sub_id$TIME, sub_id$CONC, type="b")
dev.off()
}
答案 1 :(得分:0)
您可以将其保存在单个&#34; pdf&#34;文件,每个图表单页。 &#34;标题&#34;该图标识了子集&#34; ID&#34;。在这里,我在使用&#34; ID&#34;分割(lapply
)数据集之后使用split
。在plot
中指定invisible
参数广告包装,以便{R形成车台上的NULL
循环不会打印出来。
par(mfrow=c(1,1))
pdf('Amer.pdf')
lst <- split(df, df$ID)
invisible(lapply(lst, function(sub) with(sub,
plot(TIME, CONC, type='b', main= paste('Plot of', ID[1])) )))
dev.off()
如果您需要&#34;单独的&#34;,.jpg
图,lapply
仍然可以使用
invisible(lapply(lst, function(sub) {
jpeg(paste0(sub$ID[1],'.jpg'))
with(sub, plot(TIME, CONC, type='b', main=paste('Plot of', ID[1])))
dev.off()
}))
df <- structure(list(ID = c(7030104L, 7030104L, 7030104L, 7030104L,
7030104L, 7030104L, 70304L, 70304L, 70304L, 70304L, 70304L, 70304L
), TIME = c(2, 2.5, 3, 4, 5, 6, 8, 10, 12, 24, 36, 48), CONC = c(0.536,
1.32, 1.46, 5.07, 17.3, 38.6, 0.589, 35.4, 29.4, 10.9, 3.26,
1.29)), .Names = c("ID", "TIME", "CONC"), class = "data.frame",
row.names = c(NA, -12L))