N B*_*wer 20 r knitr r-markdown
在knitr中使用kable()函数创建表时,是否可以调整列的宽度?
对于具有两列的表,这样的块产生一个占据文档整个宽度的表.我想让列更窄. 这可以用kable()完成还是需要另一个包?
这个rmarkdown块
```{r}
df <- data.frame(x = 1:10,
y = 11:20)
library(knitr)
kable(df)
```
Run Code Online (Sandbox Code Playgroud)
左对齐kable(df, align = "l")
有点帮助,但我希望两列彼此相邻.
Hao*_*Hao 20
你可以尝试一下这个kableExtra
包.
kable(x, "html") %>%
kable_styling(full_width = F)
Run Code Online (Sandbox Code Playgroud)
我知道我的评论已经很久了。但正如@Tjebo 指出的那样,我的评论值得回答,我想听从他的建议。通过定义表格格式并添加一些 CSS 样式,您可以像这样更改大小:knitr::kable(x, format = "html", table.attr = "style='width:30%;'")
. 这可能会导致表格行丢失。kableExtra提供了很好的样式工具来添加例如行。
library(knitr)
library(tidyverse)
library(kableExtra)
df <- data.frame(x = 1:10, y = 11:20)
kable(df, format = "html", table.attr = "style='width:30%;'")
kable(df, format = "html", table.attr = "style='width:30%;'") %>%
kableExtra::kable_styling()
Run Code Online (Sandbox Code Playgroud)
我最喜欢的东西是flextable
包装,因为1)表格很漂亮; 2)您可以更轻松地控制宽度和字体大小; 3)它们可以很好地呈现到HTML 和 Word中。使用数据:
```{r}
library(flextable)
library(magrittr)
df <- data.frame(x = 1:10, y = 11:20)
df %>% regulartable() %>% autofit() %>%
width(j=~x,width=1) %>% width(j=~y,width=1)
```
Run Code Online (Sandbox Code Playgroud)
将两个值都width
设置为1时,各列相互靠近:
如果调整width(j=~x,width=2) %>% width(j=~y,width=2)
表的最后一行,则如下所示: