Еще раз спасибо за ваши усилия!
Я хочу связать несколько PDF-файлов из одного фрейма данных. Поэтому я пробовал разные решения, но мои знания в R, R Studio, LaTex, knitr очень ограничены, поэтому я не смог адаптировать некоторые подходы к решению и, наконец, попробовал его самостоятельно. Я на самом деле думаю, что мой код абсолютно не тот, который вы используете для достижения того, чего я хочу достичь. Поэтому, пожалуйста, не стесняйтесь говорить мне, где и что я могу / должен улучшить.
Буду очень признателен за помощь. Я уже несколько часов гуглю, и я был бы признателен, если бы вы могли порекомендовать мне любой учебник / руководство / объяснение. Я даже не знаю с чего начать.
Текущее состояние: решеноКодmain.Rfor(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-файлов?