【发布时间】:2020-08-04 04:13:01
【问题描述】:
我可能应该指出,我对使用 RMarkdown 和 kableExtra R 包还是很陌生,但是我有一个上周可以编织的文档,尽管文档没有物理变化,但现在不再编织.我收到的错误信息如下
save_kable_latex(x, file, latex_header_includes, keep_tex) 中的错误:我们在尝试使用 magick 读取生成的 PDF 文件时遇到错误。您可以检查您的magick 安装并尝试使用magick::image_read 手动读取PDF 文件。您也可能没有安装 ghostscript。调用 ... -> as_image -> save_kable -> save_kable_latex 执行停止
通过重新安装magick R 包、安装ghostscript(通过Homebrew)等,我已经尝试了所有我能想到的方法。
下面给出的代码块似乎是问题所在,其中tab2 是一个数据框,其中一些元素是LaTeX 表达式,例如"\\sum_x f(x)*\\left ( pe(x) - lcl(x) \\right )"。
kable( tab2, format="latex", escape=FALSE, align="c", col.names=NULL ) %>%
kable_styling( latex_options=c('hold_position') ) %>%
footnote( general="Given x successes out of n trials, the holistic Jeffreys $100*(1-\\\\alpha)\\\\%$ Lower $\\\\textit{Credible}$ Limit is the value $p$ such that $\\\\int_0^p \\\\frac{t^{x+0.5-1}(1-t)^{n-x+0.5-1}}{B(x+0.5,n-x+0.5)} dt = \\\\alpha$ where B(a,b) is the Beta function given by $\\\\int_0^1 t^{(x-1)}(1-t)^{(y-1)} dt$.",
general_title="", threeparttable = TRUE,
footnote_as_chunk=TRUE, escape=FALSE ) %>%
as_image( file="tab2.png", width=8, units="in" )
并稍后在新幻灯片上使用include_graphics() 函数打印到 PDF。
任何帮助将不胜感激,因为这是一个工作演示。
编辑#1
根据要求,这是一个最低工作示例
prob.success <- sample( seq(.5,.99,.01), size=1 )
conf.alpha <- sample( seq(.5,.99,.01), size=1 )
tab1 <- data.frame( x=0:5, f=round(dbinom(0:5,5,prob.success),3) ) %>%
mutate( pe=x/5, lcl=qbeta(1-conf.alpha,x+0.5,5-0:5+0.5) ) %>%
mutate( lcl=pmin(pe,lcl) ) %>%
mutate( delta=pe-lcl ) %>%
mutate( f_delta=f*delta )
exp.expr <- "\\sum_x f(x)*\\left ( pe(x) - lcl(x) \\right )"
exp.delta <- format( round(sum( tab1$f_delta ),4), nsmall=4 )
tab2 <- tab1 %>%
mutate( x=as.character(x), f=format(round(f,4),nsmall=4) ) %>%
mutate( pe=format(round(pe,4),nsmall=4) ) %>%
mutate( lcl=format(round(lcl,4),nsmall=4) ) %>%
mutate( delta=format(round(delta,4),nsmall=3) ) %>%
mutate( f_delta=format(round(f_delta,4),nsmall=4) ) %>%
rbind( ., data.frame(x="",f="",pe="",lcl="",delta="",f_delta="") ) %>%
rbind( ., data.frame(x="", f="", pe="Exp", lcl="Diff", delta="=", f_delta=exp.expr) ) %>%
rbind( ., data.frame(x="",f="",pe="",lcl="",delta="=",f_delta=exp.delta) ) %>%
rbind( data.frame(x="x",f="f(x)",pe="pe(x)",lcl="lcl(x)",delta="pe(x)-lcl(x)",
f_delta="f(x)\\times\\left(pe(x)-lcl(x)\\right)"), . )
编辑#2
这些是 .Rmd 文件中使用的 R 包
library( knitr )
library( tibble )
library( magrittr )
library( dplyr )
library( kableExtra )
library( stringr )
library( magick )
【问题讨论】:
-
你能把
tab2作为你的数据吗?否则,要找到错误的根源将非常复杂。
标签: r r-markdown knitr kable kableextra