我有五个图像存储如下(其中" currentDirectory"是我从命令getwd()获得的结果):
currentDirectory/results/thePlot_1.jpg
currentDirectory/results/thePlot_2.jpg
currentDirectory/results/thePlot_3.jpg
currentDirectory/results/thePlot_4.jpg
currentDirectory/results/thePlot_5.jpg
我正在尝试在Rstudio中编写.Rnw脚本,该脚本将创建.tex文件,然后我可以运行pdflatex以获得包含这五个图像的.pdf文件。以下是我的尝试:
\documentclass{article}
\usepackage{float, hyperref}
\usepackage[margin=1in]{geometry}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{caption}
\usepackage{algorithm}
\usepackage{algorithmic}
\begin{document}
\SweaveOpts{concordance=TRUE}
\author{myName}
\title{myTitle}
\maketitle
<<options, echo=FALSE>>=
library(knitr)
opts_chunk$set(cache=TRUE)
@
\section*{mySection}
\FOR{i in 1:5}
nPlots=i
plotName = "thePlot"
outDir = "results"
\includegraphics{paste(getwd(), "/", outDir , "/", plotName, "_", i, sep="")}
\ENDFOR
\end{document}
我收到了几个错误:
第25行:未定义的控制序列。 第29行:缺少$插入。 第29行:LaTeX错误:文件`粘贴(getwd(),&#34; /&#34;,outDir,&#34; /&#34;,plotName,&#34; _&#34;,i,sep =&#34;&#34;)&#39;未找到。 第29行:缺少$插入。 第30行:未定义的控制序列。
任何帮助都非常感谢!
编辑1:我考虑了Alex A。的建议,并将该部分更改为包含\ Sexpr {}表达式,如下所示:
\FOR{i in 1:5}
\Sexpr{nPlots=i}
\Sexpr{plotName = "thePlot"}
\Sexpr{outDir = "results"}
\includegraphics{\Sexpr{paste(getwd(), "/", outDir , "/", plotName, "_", i, sep="")}}
\ENDFOR
\end{document}
但是,我现在收到错误:
object 'i' not found
我尝试将for循环中的条件更改为包含\ Sexpr {},如:
\FOR{\Sexpr{i in 1:5}}
但是这给我带来了错误:
Unexpected 'in'
感谢任何帮助!
编辑2:
我尝试考虑过简单地将for-loop和图像插入到Rcode中的建议。所以,我尝试使用jpeg库及其readJPEG方法,如下所示:
<<echo=FALSE>>==
library(jpeg)
@
<<plots, echo = FALSE, fig = TRUE, figs.only = TRUE, results = hide>>=
for (i in 1:5){
nPlots=i
plotName = "thePlot"
outDir = "results"
img <- readJPEG(paste(getwd(), "/", outDir , "/", plotName, "_", i, ".jpg", sep=""))
plot(img)
}
@
\end{document}
不幸的是,这仍然会导致错误:
unexpected 'in'
此外,当我单独运行以下代码时(不在for循环或.Rnw文件中):
nPlots=1
plotName = "thePlot"
outDir = "results"
img <- readJPEG(paste(getwd(), "/", outDir , "/", plotName, "_", i, ".jpg", sep=""))
plot(img)
生成的图像看起来与我拥有的.jpeg图像不同(位于currentDirectory / results / thePlot_1.jpg)
答案 0 :(得分:0)
答案 1 :(得分:0)
对于可能尝试使用乳胶和编织图像循环的任何人,我都会进行绘图。像这样:
<<echo=F, cache=T,cache.rebuild=T, results='asis' >>=
pictures <- c(pathtoimage1, pathtoimage2, pathtoimage3)
plots <- ""
for(pic in pictures){
plots <- c(plots,paste("\\includegraphics[width=0.5\\linewidth]{",pic,"}",sep=""))
}
cat(plots)
@
我相信results='asis'
可以解决问题。但是我不是专家。这为我轻松地在循环中在一个块中创建了数百个图。
欢呼