Я сгенерировал приложение shinydashboard
, которое позволяет легко визуализировать данные в списке фреймов данных на разных вкладках (например, с возможностью сбора данных с помощью ggplot на одной вкладке, таблицы сводных данных на другой). Это прекрасно работает, но теперь я хочу предоставить опцию «создать отчет в формате PDF», чтобы данные можно было сохранить для последующего просмотра в будущем.
Я хочу вывести файл PDF, содержащий комбинацию таблиц данных и графики ggplot2 в выходных данных, аналогичные приведенным ниже:
Я бы хотел, чтобы в моем списке данных была одна страница с полем заголовка, в котором указано имя кадра данных. Вероятно, для этого потребуется ручное манипулирование графиками и таблицами, но я не смог выяснить, как включить этот уровень форматирования в for
l oop (как я это делал). Это может не подходить для решения проблемы.
Вот воспроизводимый пример чего-то, что работает, но форматирование не так, как я хочу.
---
title: "Multiple Plot pdf Report"
date: "`r format(Sys.Date(), '%B %d, %Y')`"
output:
pdf_document:
keep_tex: FALSE
---
```{r, include=FALSE}
library(kableExtra)
library(ggplot2)
library(gridExtra)
```
```{r echo=FALSE, results='asis', fig.height=3, fig.width=3}
alldat1 <- mtcars[1:10, 1:5]
alldat2 <- mtcars[11:20, 1:5]
alldat.list <- list(alldat1, alldat2)
names(alldat.list) <- c("One", "Two")
for(i in 1:length(alldat.list)){
print(kable(alldat.list[[i]]))
print(
ggplot(alldat.list[[i]], aes(x = mpg, y = cyl)) +
geom_point(shape = 1) +
geom_smooth(method = lm) +
ggtitle(paste("Mpg vs Cyl: ", names(alldat.list[i])))
)
print(
ggplot(alldat.list[[i]], aes(x = disp, y = hp)) +
geom_point(shape = 1) +
geom_smooth(method = lm) +
ggtitle(paste("Disp vs HP: ", names(alldat.list[i])))
)
cat("\n\n\\pagebreak\n")
}
```
Помощь очень ценится!