我正在创建一个由多个页面创建的报告,这些报告需要是不同的文件。
我制作了一个脚本,可以从一个rmd文件迭代创建许多pdf文件。但是这个过程很长很奇怪,有时这个过程会因为权限错误而随机阻塞(仅在Windows上,在我的个人mac上,相同的脚本没有问题)。
我注意到这个过程的很长一部分是创建pdf文件,而.rmd本身的渲染速度非常快,即使对于长报告也是如此。所以我想创建一个包含不同页面中所有报告的长PDF文件,然后将它们分开。
所以我的问题是:
由于
答案 0 :(得分:1)
你可能有一个解决方案,但我面临同样的问题,也可能是其他人。我正在使用.Rnw文件和.R文件。顺便说一下,这是我创建的问题: How to create multiple PDFs with different contents from a single data frame?
可以使用以下代码强制.Rnw文件中的新页面:\newpage
或//
要将数据框拆分为多个PDF,我已经使用了以下for循环,但它没有像预期的那样工作。牢记这一点!我还尝试创建嵌入在.Rnw文件中的全局变量。然后在for循环中更改这些变量。 这是一个例子:
for(i in 1:nrow(mtcars)) {
g_title <- rownames(mtcars)[i]
knit2pdf(input = "template.Rnw", output = paste0("output\\", g_title, ".pdf"), quiet = TRUE)
}
我解决了这个问题。实际上它非常简单,因为你可以全局使用函数/方法和变量。因此,您可以定义一个变量,并将其嵌入您的Sweave文件(.Rnw)中。
正如您在此示例中所看到的,我使用来自mtcars数据字段的汽车名称来创建多个PDF。我只是在for循环中创建多个PDF,我在其中更改变量g_title
,然后在Sweave文件中使用该变量。
for(i in 1:nrow(mtcars)) {
g_title <- rownames(mtcars)[i]
knit2pdf(input = "main.Rnw",
output = paste0("output\\", g_title, ".pdf"),
quiet = FALSE,
envir = parent.frame())
}
\documentclass{article}
\usepackage[ngerman]{babel}
\begin{document}
\begin{titlepage}
Titlepage
\end{titlepage}
\tableofcontents
\newpage
\section{Topic 1}
\newpage
\section{Topic 2}
\end{document}