可重复的纵向报告写作
我正在尝试编写一份查看纵向数据的报告,并且每次都以相同的方式分析这些数据。由于我的数据的性质(它们包括在 中生成的网络对象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
文件有一个更优雅的解决方案,你可以这样做...... - 您无需手动输入要输入的文件。你可以这样做...