我正在使用knitr来制作动态文档。如果表太宽而不适合页面(屏幕)宽度,是否有任何方法可以强制它适合页面,同时在表格下方保留滚动条,以便可以从左向右滑动条形并读取表格内容?
这是一个测试代码
---
title: "Untitled"
author: "ath"
date: "07/02/2015"
output:
html_document:
css:custom.css
---
```{r set-options}
options(width = 80)
```
```{r test, results='markup'}
df.matrix <- matrix(runif(300, min = 0, max = 300), nrow = 2)
df.matrix <- as.data.frame(df.matrix)
colnames(df.matrix) <- paste("col", as.character(seq(1:150)), sep = "")
library("knitr")
kable(df.matrix, col.names = colnames(df.matrix))
```
看起来选项中的宽度不起作用。
谢谢!
答案 0 :(得分:3)
您可以使用kableExtra
为垂直和水平滚动添加滚动条。
示例:
---
title: "Untitled"
author: "ath"
date: "07/02/2015"
output: html_document
---
```{r set-options}
library("knitr")
library(kableExtra)
library(magrittr)
options(width = 80)
```
```{r test, results='markup'}
df.matrix <- matrix(runif(300, min = 0, max = 300), nrow = 2)
df.matrix <- as.data.frame(df.matrix)
colnames(df.matrix) <- paste("col", as.character(seq(1:150)), sep = "")
```
```{r kable, results = "asis"}
df.matrix %>%
kable(format = "html", col.names = colnames(df.matrix)) %>%
kable_styling() %>%
kableExtra::scroll_box(width = "100%", height = "100px")
```
<br>
```{r}
devtools::session_info()
```
下表的截图。您可以获取示例.Rmd文件和生成的.html文件here的副本。