2017-01-02 11 views
2

У меня есть flexdashboard через RMarkdown. В моем документе Rmarkdown я хотел добавить datatable из пакета DT, который сможет иметь интерактивную таблицу. Проблема, с которой я сталкиваюсь, заключается в том, что когда я создаю это, на экране нет полосы прокрутки для прокрутки вверх и вниз по таблице. Я знаю, что мне нужно реализовать javascript, который указан в этой ссылке, но я не уверен, как реализовать javascript с RMarkdown: https://datatables.net/examples/basic_init/scroll_xy.htmlДобавить прокрутку в сторону DataTable (пакет DT)

Я попытался прокрутить, но когда я сделаю это, выравнивание заголовка полностью выключено.

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

--- 
title: "Morning Reportab" 
date: "`r format(Sys.time(), '%d %B, %Y')`" 
output: 
    flexdashboard::flex_dashboard: 
    orientation: rows 
--- 

```{r setup, include=FALSE} 
library(flexdashboard) 
library(DT) 
``` 

Row 
----------------------------------------------------------------------- 

### AGORA {data-height=170} 

```{r} 
datatable(mtcars) 
``` 

Row 
----------------------------------------------------------------------- 


### Chart B {data-height=170} 

```{r} 
datatable(mtcars) 
``` 

Row 
----------------------------------------------------------------------- 


### Chart C 

```{r} 
datatable(mtcars) 
``` 

Это скриншот выход: enter image description here

Как добавить полосу прокрутки на стороне каждой таблицы в этом rmarkdown?

Любая помощь была бы замечательной, спасибо!

+1

Использование 'DT 0.2' я получил от скроллбары по умолчанию. Проверьте опцию 'options (DT.fillContainer = T)' –

+0

Привет @MartinSchmelzer благодарит за отзыв. Я добавил эту опцию, и по-прежнему нет полосы прокрутки справа. Я написал окончательную таблицу вывода как: 'datatable (mtcars, options (DT.fillContainer = T))'. Любая идея, что я делаю неправильно? –

+0

Просто выполните 'options (DT.fillContainer = T)' как одну команду перед вызовом 'datatable()'. Вы также можете настроить таргетинг на одну таблицу на 'datatable (data, fillContainer = T)' –

ответ

2

Если у вас установлена ​​последняя версия пакета DT (> = 0.2), то по умолчанию должны быть добавлены полосы прокрутки. Если это не так, вы можете изменить параметр глобально

options(DT.fillContainer = T) 

Если вы хотите изменить только определенные таблицы, которые вы можете пойти по

datatable(myData, fillContainer = T)