R 创建不同的子集,打印它们并存储打印

R 创建不同的子集,打印它们并存储打印,r,dataframe,ggpubr,R,Dataframe,Ggpubr,我有一系列大型数据帧,它们看起来如下: Year Variable Class 1999 0.4504 a 1999 0.4244 a 1999 0.8980 b 1999 0.8901 b 2000 0.2552 a 2000 0.6504 a 2000 0.7830 b 2000 0.2030 b ... ... ... ... ... ... 20

我有一系列大型数据帧,它们看起来如下:

Year   Variable   Class
1999   0.4504     a
1999   0.4244     a
1999   0.8980     b
1999   0.8901     b
2000   0.2552     a
2000   0.6504     a
2000   0.7830     b
2000   0.2030     b
...    ...        ...
...    ...        ...
2018   0.6520     a
2018   0.1403     a
2018   0.4502     b
2018   0.1240     b
有15个不同的班级,每年至少有500次观察。我想做的是为每一年和每一类创建一个子集(因此20年*15类=300个子集),并绘制一个Q-Q图来观察它们的分布,看看它们与正态性的差异有多大

问题是,即使我可以创建带有循环的子集,我也不知道如何存储绘图以在以后查看它们

这个想法是这样的:

library(data.table)
library(ggpubr)

dataframe_list <- list.files(path="B:/Data/", pattern=".csv", full.names=TRUE)
years <- c(1999:2018)

for (i in 1:13){
  db <- fread(dataframe_list[i])
  for (j in 1:length(years)){
    db_year <- subset(db, db$Year==years[j])
    class <- levels(as.factor(db_year$Class))
    for (k in 1:length(class)){
      db_year_class <- subset(db_year, db_year$Class==class[k])
    } 
  }
}
并以某种方式存储它,直到我将它们全部放在循环的末尾。因为列表中的每个数据帧至少有300个,所以最好将每个数据帧的绘图存储在一个文件中

编辑好的,我就是这样改编的:

library(data.table)
library(ggpubr)

dataframe_list <- list.files(path="B:/Data/", pattern=".csv", full.names=TRUE)
df <- c(A, B, C, D, E, F, G, H, I, J, K, L, M)
years <- c(1999:2018)
plot_list <- list()

for (i in 1:13){
  db <- fread(dataframe_list[i])
  for (j in 1:length(years)){
    db_year <- subset(db, db$Year==years[j])
    class <- levels(as.factor(db_year$Class))
    for (k in 1:length(class)){
      db_year_class <- subset(db_year, db_year$Class==class[k])
      plot_list[[k]] <- ggqqplot(db_year_class$Variable)+ggtitle(paste0("Code_0_", df[i], "_", years[j], "_", class[k]))
      outfiles <- paste0("B:/Results/Plot/Code_0_", df[i], "_", years[j], ".pdf")
      pdf(file=outfiles, onefile = TRUE)
      for(z in seq_along(list)) {
        print(plot_list[[z]])
      }
      dev.off()
    } 
  }
}
库(data.table)
图书馆(ggpubr)

dataframe_list这里有一个原型供您使用-我刚刚在
mtcars
数据集中的
cyl
值上做了一个循环,但您可以将其扩展到您的用例:

library(ggplot2)
#container list to hold ggplots
l <- list()

#unique cylinder groups
cyl_groups <- sort(unique(mtcars$cyl))

#iterate through each cylinder group, plotting mpg vs disp
for(j in seq_along(cyl_groups)){
  l[[j]] <- ggplot(mtcars[mtcars$cyl == cyl_groups[[j]], ], aes(mpg, disp)) + geom_point() + ggtitle(paste0("Cylinders = ", cyl_groups[j]))
}

#save into one PDF
pdf("plots.pdf", onefile = TRUE)
for(i in seq_along(l)) {
  print(l[[i]])
}
dev.off()
库(ggplot2)
#要保存的容器列表

l这里有一个原型供您使用-我刚刚在
mtcars
数据集中对
cyl
值进行了一次循环,但您可以将其扩展到您的用例:

library(ggplot2)
#container list to hold ggplots
l <- list()

#unique cylinder groups
cyl_groups <- sort(unique(mtcars$cyl))

#iterate through each cylinder group, plotting mpg vs disp
for(j in seq_along(cyl_groups)){
  l[[j]] <- ggplot(mtcars[mtcars$cyl == cyl_groups[[j]], ], aes(mpg, disp)) + geom_point() + ggtitle(paste0("Cylinders = ", cyl_groups[j]))
}

#save into one PDF
pdf("plots.pdf", onefile = TRUE)
for(i in seq_along(l)) {
  print(l[[i]])
}
dev.off()
库(ggplot2)
#要保存的容器列表
L