1

可重复的纵向报告写作

我正在尝试编写一份查看纵向数据的报告,并且每次都以相同的方式分析这些数据。由于我的数据的性质(它们包括在 中生成的网络对象igraph),我不能/不将它们组合成一个以年份为列的数据结构。我正在尝试生成一份报告,而且我取得了一定的成功。这是我到目前为止的方法

首先,我创建分析模板

这是我称之为的MWE templateSection.Rnw

% !Rnw weave = knitr
\section{Year \Sexpr{y} results}
Here is our ``data'' from year \Sexpr{y}.
<<results='hide'>>=
set.seed(y)
yearData = rnorm(1000, mean = y)
knitr::opts_chunk$set(fig.path = paste0('year',y,'/'))
@
Now let's make a plot:
<<histogram>>=
hist(yearData)
@
And let's view the summary:
<<>>=
summary(yearData)
@

接下来,我做一个循环来遍历所有这些年

generateSections.R我为此目的创建了一个我有权使用的脚本。

library(knitr)

years = 1:5
for(y in years){
    outFile = paste0('year',y,'.tex')
    knit(input = 'templateSection.Rnw', output = outFile)
}

然后我把它们放到我的主报告文件中

我有这个权利masterReport.Rnw

% !Rnw weave = knitr
\documentclass{article}

\title{Fantastic Yearly Report}
\author{me}
\date{\today}

\begin{document}
\section{Introduction}
Blah blah, we have this cool longitudinal data we want to study, let's do it! 

%% Script generates/knits all of the appropriate sections individually
<<>>=
source('generateSections.R')
@

%% Now drop them here:
\input{year1}
\input{year2}
\input{year3}
\input{year4}
\input{year5}

\end{document}

问题:

当我在 RStudio 中编织Ctrl-Shift-K主文档时,它失败了。我得到的错误是:

LaTeX 错误:找不到文件“year2.tex”。

确实,只有year1.tex生成了,如果我包含该文件,它就可以工作。

到目前为止,我的解决方法是在generateSections.R编写文档之前获取脚本。然后编织工作。但我真的更喜欢运行一件事。我的部分计划是研究年度数据的趋势,因此我计划进一步编辑主报告文档并在最后添加一些块。

我试过的东西和其他系统信息:

  • 我已经opts_knit$set(self.contained=FALSE)在很多地方添加了这条线,但我不确定它应该去哪里。我在R Studio Docs中发现了这一点。(它应该在主文档中吗?子文档?两个文档?代码中的位置是否重要(它必须是第一个块的第一行)?

我的系统信息是:

  • R 版本 3.6.3 (2020-02-29)
  • packageVersion("knitr") '1.28'</li>
  • RStudio 版本 1.3.1073
  • Ubuntu 18.04.5 LTS

我会觉得有帮助的其他答案:

  • 你为什么要对Rnw文件这样做? Rmd文件有一个更优雅的解决方案,你可以这样做......
  • 您无需手动输入要输入的文件。你可以这样做...
4

1 回答 1

1

似乎您想要使用 .Rmd 的参数化报告

看看这个https://bookdown.org/yihui/rmarkdown/parameterized-reports.html

于 2020-08-20T20:08:31.007 回答