生成knitr报告
我对生成knitr报告,r,knitr,R,Knitr,我对knitr相当陌生,但我已经编写了一个脚本来生成一个县的报告。第一个代码块中的第一行是display\u county如果我理解正确,您将为每个县使用相同的Rnw文件,因此每个县只有变量display\u county不同。我会首先调用数据库获取所有县的名称并将它们存储在一个向量中(比如…myCounties)。之后,可以使用包含以下内容的脚本生成报告: for(dc in myCounties) { knit2pdf(input='county_report.Rnw', output
knitr
相当陌生,但我已经编写了一个脚本来生成一个县的报告。第一个代码块中的第一行是display\u county如果我理解正确,您将为每个县使用相同的Rnw文件,因此每个县只有变量display\u county
不同。我会首先调用数据库获取所有县的名称并将它们存储在一个向量中(比如…myCounties
)。之后,可以使用包含以下内容的脚本生成报告:
for(dc in myCounties) {
knit2pdf(input='county_report.Rnw', output=paste0(dc, '_county_report.pdf'))
}
为了更有效地处理错误,还可以将knit2pdf调用包装到tryCatch语句中:
for(dc in myCounties) {
tryCatch(knit2pdf(input='county_report.Rnw', output=paste0(dc, '_county_report.pdf')))
}
是不是有什么原因让你不能创建一个县的向量,然后在上面迭代?@BryanHanson一点也不,这正是我使用brew
所做的,就像Ramnath的链接答案一样。但我觉得我应该在knitr
中就能做到这一点。你在knitr
中试过吗?如果它通过交互式或脚本在R
中工作,我不明白你为什么不能用knitr
也这样做。我从未使用过brew
,但广泛使用过knitr
和swave
,我认为这应该是可能的。关键是循环中内容的性质。如果它主要是以编程方式生成的内容,那么knitr的效果非常好。但当有文本标记时,brew+knitr更干净。在您的情况下,您可以使用子模板仅使用knitr来实现它。对于这个特定的应用程序,knit\u expand()
应该可以很好地工作;参见<代码> C <代码>中的示例075是一个非常可怕的名称,因为它也是R中的一个非常重要的函数。