R语言 使用kable()生成跨多页的表

gmol1639  于 2023-03-20  发布在  其他
关注(0)|答案(2)|浏览(139)

我想用kable()生成一个跨多页的表格,我知道用xtable()和“longtable”选项可以实现这一点,但是我需要kable()来实现其他功能。
有什么想法吗?

```{r cars, echo=TRUE, results='asis', warning=FALSE, message=FALSE}
    library(knitr)
    library(kableExtra)

# OUTPUT 1, fits on one page
output = rbind(mtcars[, 1:5])

kable(output, booktabs = T, format="latex", caption = "Small Output")

# OUTPUT 2, will not fit on one page 
output = rbind(mtcars[, 1:5], mtcars[, 1:5])

kable(output, booktabs = T, format="latex", caption = "Large Output")

更新:我是哑巴!“longtable=TRUE”是一个选项。问题是这改变了我的输出顺序,有点把事情搞砸了。
bzzcjhmw

bzzcjhmw1#

您可以尝试使用kableExtra包,如果您在kable_styling中指定hold_position,您应该能够ping表到您想要的位置。
另外,在当前的开发版本中,我引入了一个新特性,叫做repeat_headerlongtable可以在每一页上重复标题行,你可以去看看。

kable(output, "latex", booktabs = TRUE, longtable = TRUE, caption = "Test") %>%
  kable_styling(latex_options = c("hold_position", "repeat_header"))
6xfqseft

6xfqseft2#

我将使用kable_styling之间的组合:full_widthcolumn_spec。希望能有所帮助。

kable(myFields, "latex", longtable = F, booktabs = T) %>%
 kable_styling(full_width = T) %>%  
 column_spec(1, width = "5em" ) %>% 
 column_spec(2, width = "10em" ) %>%  
 column_spec(3, width = "15em")

相关问题