【发布时间】:2021-12-02 00:59:25
【问题描述】:
我想将 R 中的表格另存为图像,其中包含列名中的 数学表达式 和来自 spec_hist() 函数的 内嵌直方图 kable额外。理想情况下,我希望表格格式为 Latex 表格,但 HTML 也可以。
我遇到的问题是,当我尝试保存一个 kable HTML 表时,数学表达式没有正确解释,但内嵌直方图显示得很好。
同时,如果我尝试保存 kable Latex 表,数学表达式会正确解释,但不会出现直方图。
这可能是 kableExtra 中的一个错误(两个错误?)吗?还是我错过了什么?
请注意,kable HTML 表格在 R Studio/R Markdown 中看起来非常好(数学表达式和内联图)。但我想保存一个重用的图像。 然而,kable Latex 表从不显示内嵌直方图,无论是在 R 中显示还是保存到文件中。
这是一个可重现的例子:
library(knitr)
library(kableExtra)
df <- mtcars[1:6,] %>%
mutate(`$\\theta_{boot}$` = "") %>% # add an empty column where the in-line histograms will go
rename(`$mpg$` = mpg, # rename some columns to math expressions
`$\\bar{cyl}$` = cyl,
`$\\bar{disp}$` = disp,
`$hp$` = hp,
`$drat$` = drat)
# create dummy data for the in-line histograms
hist_dat <- list(runif(20), runif(20), runif(20), runif(20), runif(20), runif(20))
# Make HTML Table
kbl(df, escape = FALSE, booktabs = T, format = "html") %>%
add_header_above(c("Some Header" = 6, "Some Other Header" = 7)) %>% # add header
kable_styling(latex_options = c("repeat_header"), font_size = 12) %>%
column_spec(12, image = spec_hist(hist_dat)) %>% # add in-line hist
pack_rows("Group 1", 1, 3) %>%
pack_rows("Group 2", 4, 6) %>%
kable_paper() %>%
as_image(file = 'temp.png')
#save_kable(file = 'temp.png')
直方图在那里,但列名被打印为文字而不是解释的数学表达式。
现在是乳胶版本:
# Make Latex Table
kbl(df, escape = FALSE, booktabs = T, format = "latex") %>%
add_header_above(c("Some Header" = 6, "Some Other Header" = 7)) %>%
kable_styling(latex_options = c("repeat_header"), font_size = 12) %>%
column_spec(12, image = spec_hist(hist_dat)) %>%
pack_rows("Group 1", 1, 3) %>%
pack_rows("Group 2", 4, 6) %>%
kable_paper(full_width = TRUE) %>%
as_image(file = 'temp_latex.png')
#save_kable(file = 'temp.png')
使用 format = "latex" 和 full_width = TRUE 生成以下文件:
现在列名被正确解释,但直方图未绘制。
我也发现使用as_image() 或save_kable() 保存图像没有区别。
有什么想法吗?
谢谢!
编辑: 硬件说明:我在安装了 LaTeX 的 Mac 上。图形工作正常,尽管在我的 Windows 机器上所有涉及乳胶的调用都失败了(相同的代码,安装了 MikTeX、Ghostscript 和 Magick)。
> R.version
_
platform x86_64-apple-darwin17.0
arch x86_64
os darwin17.0
system x86_64, darwin17.0
status
major 4
minor 1.0
year 2021
month 05
day 18
svn rev 80317
language R
version.string R version 4.1.0 (2021-05-18)
nickname Camp Pontanezen
【问题讨论】:
标签: html r math latex kableextra