考虑一下这个简单的例子
library(knitr)
library(kableExtra)
dt <- mtcars[1:5, 1:4]
# HTML table
kable(dt, format = "html", caption = "Demo Table") %>%
kable_styling(bootstrap_options = "striped",
full_width = F) %>%
add_header_above(c(" ", "Group 1" = 2, "Group 2[note]" = 2)) %>%
add_footnote(c("table footnote"))

这里我想要一件很简单的东西。在pdf中打印此表(可能以可管道的方式)。我想让这张桌子看起来像这样。
我知道这是html,但是我们不能用铬打印html页面到pdf吗?一定有办法的(我希望如此)。我不想处理latex,也不想创建一个rnotebook文档。呈现必须来自我的裸.R脚本。这不可能吗?
有什么想法吗?谢谢!
发布于 2018-09-19 12:49:49
这里是一个解决方案,您的部分问题,生成一个表格的pdf格式。您需要在xtable中调整表的样式,以便获得您想要的斑马条和合并的列。一般来说,从html转换到pdf并不那么简单,所以一个更好的解决方案是首先使用LaTeX生成表(我知道您不想要LaTeX,但至少这是编译成用R和xtable完成的工作的pdf ):
library(xtable)
dt <- mtcars[1:5, 1:4]
filename <- tempfile(fileext = ".tex")
capture.output(print(xtable(dt)), file = filename)
foo <- readLines(filename)
writeLines(c("\\documentclass[hidelinks]{article}",
"\\begin{document}",
foo,
"\\end{document}"),
con = filename)
tools::texi2dvi(filename, pdf = TRUE)您应该看看https://cran.r-project.org/web/packages/xtable/vignettes/xtableGallery.pdf,以获得您想要的样式。祝好运。
编辑:似乎您也可以使用kabelExtra:
library(knitr)
library(kableExtra)
dt <- mtcars[1:5, 1:4]
# LaTeX table
a <- kable(dt, format = "latex", caption = "Demo Table") %>%
kable_styling(bootstrap_options = "striped",
full_width = F) %>%
add_header_above(c(" ", "Group 1" = 2, "Group 2[note]" = 2)) %>%
add_footnote(c("table footnote"))
filename <- tempfile(fileext = ".tex")
capture.output(a, file = filename)
foo <- readLines(filename)
writeLines(c("\\documentclass[hidelinks]{article}",
"\\begin{document}",
foo,
"\\end{document}"),
con = filename)
tools::texi2dvi(filename, pdf = TRUE)https://stackoverflow.com/questions/52404799
复制相似问题