Как я могу создать страничную таблицу с заголовком в RMarkdown? - PullRequest
0 голосов
/ 18 октября 2018

У меня есть data.frame, который я хочу напечатать в документе RMarkdown (вывод HTML) в отформатированном виде.Для этого есть 3 функции, которые мне не удалось получить одновременно:

  1. В верхней части страницы должен быть заголовок или подпись, чтобы объяснить, что это такое.
  2. Поскольку он может быть очень длинным, я хочу, чтобы он был прокручиваемым или разбитым на страницы
  3. Заголовки заголовка и столбца всегда должны быть видны сверху, даже когда таблица прокручивается или разбивается на страницы

С помощью прокрутки можно легко получить подпись с помощью kableExtra:

library(kableExtra)
cars %>%
    kable(caption = 'Cars') %>%
    kable_styling(bootstrap_options = c('striped', 'condensed')) %>%
    scroll_box(width = "500px", height = "200px")

Но когда я прокручиваю вниз, заголовки заголовков и столбцов тоже прокручиваются, и трудно понять, чтокаждый столбец имеет вид.


Добавив df_print: paged к заголовку YAML, я могу получить действительно красиво выглядящий постраничный вывод (см. R Markdown: Definitive Guide ) из значения по умолчаниюповедение при печати:

---
title: "Motor Trend Car Road Tests"
output:
  html_document:
    df_print: paged
---

```{r}
cars
```

Но, насколько я знаю, нет никакого способа добавить заголовок или подпись к этому.Я мог бы просто добавить заголовок, используя markdown, но тогда код для генерации таблицы застрял бы между заголовком и таблицей.Любые другие варианты, которые я пропускаю?

1 Ответ

0 голосов
/ 19 октября 2018

Я бы посоветовал попробовать DT::datatable, который создает настраиваемые таблицы в выводе html.

Следующий код создаст прокручиваемую таблицу с фиксированным заголовком.

DT::datatable(mtcars, 
         extensions = c('FixedColumns',"FixedHeader"),
          options = list(scrollX = TRUE, 
                         paging=FALSE,
                         fixedHeader=TRUE))
...