Распечатать список элементов kable в Rmarkdown - PullRequest
0 голосов
/ 22 февраля 2020

У меня есть список элементов kable

list1 <- vector(mode = 'list', length = 2L)
a <- data.frame(a = c(1,2,3), b = c('q','w','e'))
b <- data.frame(d = c(3,4,5), e = c('k', 'l', 'm'))
list1[[1]] <- a %>% kable(format = 'html') %>% kable_styling('hover', full_width = F)
list1[[2]] <- b %>% kable(format = 'html') %>% kable_styling('hover', full_width = F)

Единственный способ, которым я успешно печатаю каждый элемент в файл html (rmarkdown), заключается в том, чтобы вызывать один за другим, как это:

```{r, echo = FALSE, result = 'asis'}
list1[[1]]
list1[[2]]
```

с желаемым выводом при вызове rmarkdown :: render (output_format = 'html_document'):

desired output

Если я сделаю что-нибудь другое Например:

```{r, echo = FALSE, result = 'asis'}    
print(list1)
```

или

```{r, echo = FALSE, result = 'asis'}  
for(i in seq_along(list1)) {print(list1[[i]])}
```

или

```{r, echo = FALSE, result = 'asis'}
purrr::map(c(1,2), ~ print(list1[[.x]]))
```

В файле html я получаю следующий вывод:

## <table class="table table-hover" style="width: auto !important; margin-left: auto; margin-right: auto;">
##  <thead>
##   <tr>
##    <th style="text-align:right;"> a </th>
##    <th style="text-align:left;"> b </th>
##   </tr>
##  </thead>
## <tbody>
##   <tr>
##    <td style="text-align:right;"> 1 </td>
##    <td style="text-align:left;"> q </td>
##   </tr>
##   <tr>
##    <td style="text-align:right;"> 2 </td>
##    <td style="text-align:left;"> w </td>
##   </tr>
##   <tr>
##    <td style="text-align:right;"> 3 </td>
##    <td style="text-align:left;"> e </td>
##   </tr>
## </tbody>
## </table>
## <table class="table table-hover" style="width: auto !important; margin-left: auto; margin-right: auto;">
##  <thead>
##   <tr>
##    <th style="text-align:right;"> d </th>
##    <th style="text-align:left;"> e </th>
##   </tr>
##  </thead>
## <tbody>
##   <tr>
##    <td style="text-align:right;"> 3 </td>
##    <td style="text-align:left;"> k </td>
##   </tr>
##   <tr>
##    <td style="text-align:right;"> 4 </td>
##    <td style="text-align:left;"> l </td>
##   </tr>
##   <tr>
##    <td style="text-align:right;"> 5 </td>
##    <td style="text-align:left;"> m </td>
##   </tr>
## </tbody>
## </table>

Как я могу распечатать все эти таблицы, не вызывая элемент за элементом?

...