我正在尝试自动生成每季度左右生成的pdf报告。以下是我的RMarkdown模板示例(template.Rmd):
---
title: "Data Report"
output:
pdf_document:
fig_caption: no
subtitle: Quarter 4 Report
---
###This is just a sample of my code for the calculation
Figure 1. Transfers to Hospital
```{r, echo=FALSE, fig.width=12, fig.height=6}
library(ggplot2)
Facility.graph <- function(df, na.rm = TRUE, ...){ #Function to create plots
# list of hospitals in data to loop over
Facility_list <- unique(df$Facility)
# for loop to produce ggplot2 graphs
for (i in seq_along(Facility_list)) {
# create plot for each hospital in df
plots1 <- ggplot(rbind(subset(df, df$Facility==Facility_list[i]), subset(df, df$Facility=="RCI Average")), aes(Date, y = get(names(df)[3]), group = Facility, colour = Facility)) + geom_point(size=4) + labs(x="", y="Number of Transfers")
print(plots1)
}
}
Facility.graph1(byfacility_graph_data[,1:3])
```
&#34; byfacility_graph_data&#34;是数据框,其前2列是类别(设施和日期),第三列包含医院的转移数量。我的问题是当我在R中运行代码(见下文)为每个医院编织和创建一个pdf文档时,所有的图都显示在所有的pdf中,而不是每个pdf的相应图。
# The R code for knitting the above template.Rmd script to create a pdf document for each hospital with corresponding graphs
library(knitr)
Facility_list <- unique(byfacility_graph_data$Facility)
setwd("C:\\User\\Desktop\\reports")
# create for loop to produce ggplot2 graphs
for (i in Facility_list){
rmarkdown::render(input = "template.Rmd", output_format = "pdf_document", output_file = paste0("reports", i, ".pdf", sep=''))
}
答案 0 :(得分:0)
我能够通过修复我的Rmarkdown模板来解决我的问题:
---
title: "Data Report"
output:
pdf_document:
fig_caption: no
subtitle: Quarter 4 Report
---
###This is just a sample of my code for the calculation
Figure 1. Transfers to Hospital
```{r, echo=FALSE, fig.width=12, fig.height=6, fig.keep='first'}
library(ggplot2)
Facility.graph <- function(df, na.rm = TRUE, ...){ #Function to create plots
# list of hospitals in data to loop over
Facility_list <- unique(byfacility_graph_data$Facility)
for (i in seq_along(Facility_list)) { # for loop to produce ggplot2 graphs
# create plot for each hospital in df
plots1 <- ggplot(df, aes(Date, y = get(names(df)[3]), group = Facility, colour = Facility)) + geom_point(size=4) + labs(x="", y="Number of Transfers")
print(plots1)
}
}
Facility.graph(df) #Calling the function
```
library(knitr)
Facility_list <- unique(byfacility_graph_data$Facility)
setwd("C:\\Users\\Desktop")
for (j in unique(byfacility_graph_data$Facility)){
df<-byfacility_graph_data[which(byfacility_graph_data$Facility==j|byfacility_graph_data$Facility=="Average"), 1:3]
rmarkdown::render(input = "template.Rmd",output_format = "pdf_document", output_file = paste0("reports_ ", j, ".pdf", sep=""))
}
这给了我所有报告并根据需要更正了图表。谢谢大家:)