Еще раз спасибо за ваши усилия!

ема

Я хочу связать несколько PDF-файлов из одного фрейма данных. Поэтому я пробовал разные решения, но мои знания в R, R Studio, LaTex, knitr очень ограничены, поэтому я не смог адаптировать некоторые подходы к решению и, наконец, попробовал его самостоятельно. Я на самом деле думаю, что мой код абсолютно не тот, который вы используете для достижения того, чего я хочу достичь. Поэтому, пожалуйста, не стесняйтесь говорить мне, где и что я могу / должен улучшить.

Буду очень признателен за помощь. Я уже несколько часов гуглю, и я был бы признателен, если бы вы могли порекомендовать мне любой учебник / руководство / объяснение. Я даже не знаю с чего начать.

Текущее состояние: решеноКодmain.R
for(i in 1:nrow(mtcars)) {
  g_title <- rownames(mtcars)[i]
  knit2pdf(input  = "main.Rnw", 
           output = paste0("output\\", g_title, ".pdf"), 
           quiet  = FALSE, 
           envir  = parent.frame())
}
template.Rnw
\documentclass{article}
\usepackage[ngerman]{babel}

\begin{document}
\begin{titlepage}
  Titlepage
\end{titlepage}

\tableofcontents
\newpage

\section{Topic 1}
\newpage

\section{Topic 2}    

\end{document}
Подходы к решениюГлобальные переменные

Я пытался создать глобальные переменные, которые изменяются в цикле for. Эти переменные затем используются в файле .Rnw в форме функции. Я не смог заставить это работать из-за неизвестных ошибок.

Код в файле .R:

printPlot <- function() {
  print(g_plot)
}

for(i in 1:nrow(mtcars)) {
  g_title <- rownames(mtcars)[i]
  g_plot  <- ggplot(mtcars[i,], aes(x = cyl, y = disp) ) + 
             geom_point()
  knit2pdf(input  = "main.Rnw", 
           output = paste0("output\\", g_title, ".pdf"), 
           quiet  = FALSE, 
           envir  = parent.frame())
}

Код в файле .Rnw:

<<>>=
printPlot()
@

Ошибки:

PDF-файлы созданы, но их содержимое перепутано. Вы можете увидеть это на изображении в разделе «Текущее состояние».

Я также получаю несколько сообщений об ошибках / предупреждениях, например:

Предупреждающие сообщения: 1: выполняется команда '"C: \ Users \ Marc \ AppData \ Local \ Programs \ MIKTEX ~ 1.9 \ miktex \ bin \ x64 \ texify.exe" --quiet --pdf "Mazda RX4.pdf" - max-iterations = 20 -I "C: /PROGRA~1/R/R-33~1.2/share/texmf/tex/latex" -I "C: /PROGRA~1/R/R-33~1.2/share / texmf / bibtex / bst "'имеет статус 1 2: выполняется команда'" C: \ Users \ Marc \ AppData \ Local \ Programs \ MIKTEX ~ 1.9 \ miktex \ bin \ x64 \ texify.exe "--quiet --pdf "Mazda RX4 Wag.pdf" - max-итераций = 20 -I "C: /PROGRA~1/R/R-33~1.2/share/texmf/tex/latex" -I "C: / PROGRA ~ 1 / R / R-33 ~ 1.2 / share / texmf / bibtex / bst "'имели статус 1

Makefile

Я только что прочитал первый раз о makefile. Может быть, это поможет решить проблему.

Если я правильно понял, makefile используется с Markdown, а не напрямую с LaTex. Это кажется огромной потерей производительности. Этот момент очень важен для меня, поэтому я постараюсь найти другое решение.

Другие вопросы SO

В большинстве случаев я пытался адаптировать код, но просто потерпел неудачу, потому что мне не хватает знаний, чтобы понять данные подходы к решению.

R Knitr PDF: есть ли возможность автоматически сохранять отчеты в формате PDF (сгенерированные из .Rmd) через цикл?Использование циклов с Knitr для создания нескольких отчетов PDF ... нужна небольшая помощь, чтобы справиться с трудностямиМожет ли Sweave автоматически создавать множество PDF-файлов?

Ответы на вопрос(1)

Ваш ответ на вопрос