使用R中的嵌套for循环将多个绘图转换为pdf

使用R中的嵌套for循环将多个绘图转换为pdf,r,for-loop,pdf,R,For Loop,Pdf,我的问题是关于使用for循环,使用R中的ggplot2生成多个图形的PDF。我有多个采样站的一组水质数据,其中大量参数属于几个组中的一个 我的目标是为每个站点创建一个PDF文件,其中包含每个参数的一些简单散点图,并按参数组分组。我的代码如下 最初,我使用内部for循环为单个采样站生成绘图,并将其保存到PDF中。当我将其嵌套在外部for循环中时,我遇到了一个问题,即它不是为每个采样站生成只包含数据的唯一PDF,而是为所有采样站生成相同的PDF,其中包含所有站的数据相互叠加的绘图。我还没有找到一个修

我的问题是关于使用for循环,使用R中的ggplot2生成多个图形的PDF。我有多个采样站的一组水质数据,其中大量参数属于几个组中的一个

我的目标是为每个站点创建一个PDF文件,其中包含每个参数的一些简单散点图,并按参数组分组。我的代码如下

最初,我使用内部for循环为单个采样站生成绘图,并将其保存到PDF中。当我将其嵌套在外部for循环中时,我遇到了一个问题,即它不是为每个采样站生成只包含数据的唯一PDF,而是为所有采样站生成相同的PDF,其中包含所有站的数据相互叠加的绘图。我还没有找到一个修复方法,使每个PDF只包含该站的数据

full_set <- list.files(pattern = "*xlsx") %>% map_df(~read_excel(.))
full_set_annual_means <- full_set %>% group_by(Station, Group, Constituent, Year) %>% 
  summarize(annual_mean = mean(Monthly_Average))
for (st in unique(full_set_annual_means$Station)) {
  filename <- sprintf("%s plots.pdf", toString(st))
  pdf(file = filename, width = 10.5, height = 8, paper = "a4r")
  for (var in unique(full_set_annual_means$Group)) {
    print(ggplot(full_set_annual_means[full_set_annual_means$Group == var, ], aes(Year, annual_mean)) + 
          geom_point() + facet_wrap(~Constituent, scales = "free_y") + ggtitle(var))
}
dev.off()
}
full\u set%map\u df(~read\u excel()
全套-年度-指%group(车站、集团、组成部分、年份)%>%
汇总(年平均值=平均值(月平均值))
对于(唯一的st(全套\年度\表示$Station)){

filename您从未对数据集应用站点筛选器。在ggplot函数调用中,您需要这样的内容:
full\u set\u annual\u means[full\u set\u annual\u means$Group==var&full\u set\u annual\u means$station==st,]
。您想做什么并不困难,但如果没有一个完整的数据,就很难正确地帮助您。
full_set_annual_means <- full_set_annual_means %>% filter(Station == st)

station_set <- full_set_annual_means %>% filter(Station == st)

full_set <- list.files(pattern = "*xlsx") %>% map_df(~read_excel(.))
full_set_annual_means <- full_set %>% group_by(Station, Group, Constituent, Year) %>% 
  summarize(annual_mean = mean(Monthly_Average))
for (st in unique(full_set_annual_means$Station)) {
 station_set <- full_set_annual_means %>% filter(Station == st)
   filename <- sprintf("%s plots.pdf", toString(st))
  pdf(file = filename, width = 10.5, height = 8, paper = "a4r")
  for (var in unique(station_set$Group)) {
    print(ggplot(station_set[station_set$Group == var, ], aes(Year, annual_mean)) + 
          geom_point() + facet_wrap(~Constituent, scales = "free_y") + ggtitle(var))
}
dev.off()
}