为 DataTable(DT 包)添加滚动条到侧边

4
我通过RMarkdown创建了一个flexdashboard。在我的Rmarkdown文档中,我想添加一个datatable,来自于DT包,可以使您的表格交互式。我遇到的问题是,在创建此表格时,没有侧边滚动条可以上下滚动表格。我知道我需要实现提供在此链接中提供的javascript,但我不知道如何使用RMarkdown实现javascript:https://datatables.net/examples/basic_init/scroll_xy.html 我尝试了scrollY,但这样做会使标题对齐完全失效。
以下是此示例代码,并且完全可重现,因为我还使用了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)
```

这是输出截图: 在这里输入图片描述 我该如何在此 rmarkdown 中每个表格的侧边添加滚动条?
非常感谢您的帮助!

1
使用 DT 0.2,我默认获得了滚动条。请检查选项 options(DT.fillContainer = T) - Martin Schmelzer
嗨@MartinSchmelzer,感谢您的反馈。我添加了该选项,但右侧仍然没有滚动条。我将最终输出表格写为:datatable(mtcars, options(DT.fillContainer = T))。您有什么想法我做错了什么吗? - nak5120
在调用 datatable() 之前,只需执行 options(DT.fillContainer = T) 单个命令即可。您也可以通过 datatable(data, fillContainer = T) 来针对单个表进行操作。 - Martin Schmelzer
@MartinSchmelzer,很遗憾对我仍然没有用。您是使用flexdashboard还是原始的rmarkdown模板?谢谢。 - nak5120
搞定了,我没有安装DT 0.2。你能把这个作为答案留下来,这样我就可以给你点赞了吗?谢谢! - nak5120
完成。谢谢,祝新年快乐。 - Martin Schmelzer
1个回答

6

如果您安装了最新版本的DT包(>= 0.2),则默认情况下应添加滚动条。 如果不是这种情况,则可以通过全局编辑选项fillContainer来实现。

options(DT.fillContainer = T)

如果您想仅编辑特定的表格,可以按以下方式进行操作:
datatable(myData, fillContainer = T)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接