Я собирал отчеты, используя Knitr и rmarkdown. Мне нравится выдавать свой R-код в воспроизводимом R-формате, однако я постоянно сталкиваюсь с ограничениями, и мне интересно, кто это занял раньше. Мне нужно зациклиться на двух страницах с различными настройками содержания и книжки для каждой коллекции данных в списке. После написания кода для этих двух страниц я хотел бы заполнить i для каждой коллекции в списке (1, 2, 3, 4, 5 и т. Д.).Зацикливание кода в knitr и rmarkdown
Для примера ниже у меня есть master_list, в котором есть x1_list & x2_list. В настоящее время я устанавливаю переменную num перед каждым набором кода и соответственно изменяю число (1, 2, 3 и т. Д.). Это неэффективно, так как код все равно, просто вставлен дважды. Как лучше всего прокрутить код.
Чтобы быть яснее. Я хочу, чтобы цикл через код до того, как много раз, как их элементы в master_list (сейчас только два раза), без перезаписи кода каждый раз.
Часть кода Я хочу повторить (полный воспроизводимый пример ниже)
## Name `r num`: First Table
\vspace*{0.5in}
```{r echo = F, results = 'asis', message = F, warning = F, fig.width = 8, fig.height = 8, size = 'Large'}
library(xtable)
print(xtable(master_list[[num]][[1]]),type='latex',comment = FALSE,floating=FALSE)
```
\newpage
## Manager `r num`: Second Table
```{r echo = F, results = 'asis', message = F, warning = F, fig.align = 'center', fig.width = 9, fig.height = 7, fig.show = 'hold', size = 'Large'}
print(xtable(master_list[[num]][[2]]),type='latex',comment = FALSE,floating=FALSE)
```
\newpage
Ниже приведен пример файла .Rmd работает в Rstudio (я нажимаю Вязать PDF для создания отчета в формате PDF с 4 страниц) ,
---
output:
pdf_document:
includes:
classoption: landscape
geometry: margin=1.75cm
---
`r x1_list <- list(x1_front <- data.frame("col1" = rnorm(10), "col2" = rnorm(10)), x1_back <- data.frame("col1" = rnorm(10), "col2" = rnorm(10))) `
`r x2_list <- list(x2_front <- data.frame("col1" = rnorm(10), "col2" = rnorm(10)), x2_back <- data.frame("col1" = rnorm(10), "col2" = rnorm(10))) `
`r master_list <- list(x1_list, x2_list) `
`r num <- 1`
## Name `r num`: First Table
\vspace*{0.5in}
```{r echo = F, results = 'asis', message = F, warning = F, fig.width = 8, fig.height = 8, size = 'Large'}
library(xtable)
print(xtable(master_list[[num]][[1]]),type='latex',comment = FALSE,floating=FALSE)
```
\newpage
## Manager `r num`: Second Table
```{r echo = F, results = 'asis', message = F, warning = F, fig.align = 'center', fig.width = 9, fig.height = 7, fig.show = 'hold', size = 'Large'}
print(xtable(master_list[[num]][[2]]),type='latex',comment = FALSE,floating=FALSE)
```
\newpage
`r num <- 2`
## Name `r num`: First Table
\vspace*{0.5in}
```{r echo = F, results = 'asis', message = F, warning = F, fig.width = 8, fig.height = 8, size = 'Large'}
print(xtable(master_list[[num]][[1]]),type='latex',comment = FALSE,floating=FALSE)
```
\newpage
## Manager `r num`: Second Table
```{r echo = F, results = 'asis', message = F, warning = F, fig.align = 'center', fig.width = 9, fig.height = 7, fig.show = 'hold', size = 'Large'}
print(xtable(master_list[[num]][[2]]),type='latex',comment = FALSE,floating=FALSE)
```
Это было полезно спасибо –