我遵循指南here和here来针对不同的数据子集生成相同的报告。我已经得到它来生成打印不同输入参数的简单PDF,但是当我尝试使用ggplot生成pdf时,出现错误。有人知道为什么会抱怨吗?
错误(修剪了文件路径):
输出文件:AllDepartmentsReport.knit.md
“ C:/ Program Files / RStudio / bin / pandoc / pandoc” + RTS -K512m -RTS AllDepartmentsReport.utf8.md-至乳胶-来自markdown + autolink_bare_uris + ascii_identifiers + tex_math_single_backslash-输出pandoc13b0103e5bc9.tex- -template“ C:.. \ R \ win-library \ 3.5 \ rmarkdown \ rmd \ latex \ default-1.17.0.2.tex” --highlight-style探戈--latex-engine pdflatex --variable graphics = yes-变量“ geometry:margin = 1in”-变量“ compact-title:yes” !软件包pdftex.def错误:File`/ autoReports / MATH_Report_files / figure-lat 找不到ex / unname-chunk-3-1.pdf:使用草稿设置。
错误:无法编译/autoReports/MATH_Report.tex。有关更多信息,请参见MATH_Report.log。
用于提供参数generateReports.r
的Rscript:
library(knitr)
library(markdown)
library(rmarkdown)
library(tinytex)
departments <- c("MATH", "BIOL")
ReportGenerator <- function(department) {
rmarkdown::render("./AllDepartmentsReport.Rmd",
params = list(department = dpt),
output_file = paste0(dpt,"_Report",".pdf"),
output_dir = "../autoReports",
clean = FALSE
)
}
# lapply(departments, ReportGenerator)
for (dpt in unique(departments) ){
ReportGenerator(dpt)
}
带有报告信息AllDepartmentsReport
的Rmd:
---
output: pdf_document
params:
department: "MATH"
---
```{r, include = FALSE}
library(knitr)
library(tidyverse)
library(viridis)
library(purrr)
library(scales)
library(stringr)
library(lubridate)
library(markdown)
library(rmarkdown)
```
This is my report about
```{r}
print(params$department)
paste(params$department)
print("hi")
ggplot(mtcars) +
geom_point(aes(x=mpg, y=hp))
```
我下载并使用了miktex。如果我使用RMD编织,它将正确生成。如果我在没有ggplot的情况下运行脚本,则该脚本可以工作。我还应该指出,它说找不到的文件实际上已经存在。我还在使用64位Windows 10。
我尝试过的一些文章:
编辑:
我尝试使用renders中的选项,例如middles_dir =和knit_root_dir,但似乎无法获得有效的组合。仅能在同一文件夹中编译。
答案 0 :(得分:0)
通过将路径指定为output_file名称的一部分,而不是使用output_dir,我可以成功地将创建的pdf保存到其他文件夹。如下所示:
rmarkdown::render(input = "reportMaker.Rmd",
params = list(department = dpt),
output_file = paste0("../autoReports/",dpt,"_Report",".pdf"),
output_format = "pdf_document"
)