0

我有很多主题的大量数据。数据具有以下列:

    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

感谢您的帮助!

4

2 回答 2

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()
}
于 2015-01-06T06:28:19.830 回答
0

您可以将其保存在单个“pdf”文件中,每个绘图单页。图的“标题”标识子集“ID”。在这里,我在按“ID”lapply拆分()数据集后使用。split指定plot参数 ad wrapinvisible以便NULL循环不会在 R 控制台上打印。

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

或者如果你需要“分离”,.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))
于 2015-01-06T06:31:58.060 回答