У меня есть пять изображений, хранящихся следующим образом (где «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
Я пытаюсь написать сценарий .Rnw в Rstudio, который создаст файл .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: файл `paste(getwd(), "/", outDir , "/", plotName, "_", i, sep="")' не найден. Строка 29: вставлен пропущенный символ $. Строка 30: Неопределенная управляющая последовательность.
Любая помощь очень ценится!
РЕДАКТИРОВАТЬ 1: я принял во внимание совет Алекса А. и изменил раздел, включив выражения \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 и вставку изображения в 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)
paste(...)
в\Sexpr{}
. - person Alex A.   schedule 08.06.2015\For
и\EndFor
для включения нескольких графиков - лучший способ сделать это. (На самом деле я не думаю, что вы можете сделать это таким образом.) Я бы, вероятно, сделал блок R, например<<plots, echo = FALSE, fig = TRUE, figs.only = TRUE, results = hide>>
(код R для отображения графиков)@
. Это автоматически встроит их. - person Alex A.   schedule 08.06.2015