使用knitr :: knit

时间:2017-06-03 04:26:18

标签: r latex knitr

我的基本文件夹结构类似于:

> Top/    
    > FolderA/
    > FolderB/

并在每个FolderA /和FolderB / ...等。有一个名为myfile.rnw

的文件

每个rnw文件包含以下代码:

<<setup, eval=TRUE, include=FALSE, echo=FALSE>>=
library(knitr)
library(dplyr)
library(ggplot2)
opts_chunk$set(fig.path=paste("figure", unique_letter, "/", unique_letter, sep="")) 
#pretend that unique_letter makes the figure path unique for each rnw file
@
\documentclass[10pt]{article}
\begin{document}
Hello. This is file A. See the figure below.
<<plot, fig.cap="My test caption", include=TRUE, echo=FALSE>>=
a = data.frame(A = seq(1:100)) %>% 
  mutate(B = A^3)
myplot = ggplot()+
  geom_area(data = a, aes(x = A, y = B))
myplot
@
\end{document}

我正在尝试使用knitr使用以下代码编译每个rnw文件:

library(knitr)

mylist = list.files(path = "Path/To/Top",
                   pattern = ".rnw",
                   full.names = TRUE,
                   recursive = TRUE,
                   ignore.case = TRUE,
                   include.dirs = FALSE)

for (i in 1:length(mylist)) {
  knit(mylist[[i]], output = paste(dirname(mylist[[i]]), "/myfile.tex", sep = ""))
}

然而,当我运行代码来编译多个rnw文件时,我最终得到一个.tex文件但没有文件夹来容纳所有数字。我使用以下链接作为参考(前两个非常相关):

Can Sweave produce many pdfs automatically?

Using loops with knitr to produce multiple pdf reports... need a little help to get me over the hump

然后这个似乎是相关的,因为在我的真实文件夹结构中,rnw文件正在为重复文本提供多个R分析文件(.R)和一般rnw文件,并替换了一些变量。

https://github.com/yihui/knitr/issues/913

虽然我不认为它完全相关,因为我很好地将pdf文档分别放在与rnw文件相同的目录中。

我似乎无法使用knit2pdf,因为它不适用于我的R版本(我正在恢复它以便我可以使用它)。

我确实有下一步将.tex文件转换为PDF但是.tex文件现在无法编译,因为没有为rnw文件创建图形文件夹。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

我认为数字文件夹位于您的工作目录中。在循环中,您可以尝试添加setwd以指向最终Tex文件的目录。即使在这样的脚本中间更改目录并不是很干净......但是,您应该直接使用knit来创建PDF文件。如果这是R版本的问题,你应该真的更新......