问题针织RMarkdown由于KableExtra后更新R

mkh04yzy  于 2023-06-27  发布在  其他
关注(0)|答案(1)|浏览(111)

我昨天更新了R到4.3.1版本,从那以后,我就无法将任何RMarkdowns编织到使用kable的html中。我每次尝试都得到相同的错误消息:
Error Message
我试图解决的问题:
1.卸载和重新安装kableExtra

remove.packages("kableExtra")
devtools::install_github("kupietz/kableExtra")
library(kableExtra)

安装步骤运行正常,直到输出以下错误:警告:包'kableExtra'正在使用中,将不会安装。但是,我能够运行库(kableExtra)而没有问题。但是当我尝试使用kable函数时,我得到了这个错误:read.table(file = file,header = header,sep = sep,quote = quote,:no lines available in input.代码在更新R之前运行得很好。
1.更新所有软件包
1.重新启动R和/或重新启动我的计算机并同时、单独和以不同顺序重试1和2
如果我删除所有可编辑的代码,我可以很好地编辑RMarkdown。
我希望能够再次编织RMarkdowns与可编辑代码。

fnvucqvd

fnvucqvd1#

该消息指示kableExtra中存在错误。
在你发布的图片中(作为文本会更好;使用剪切和粘贴将其放入您的问题中),显示了一个来自kableExtra初始化代码的测试:

if (!is.null(rmarkdown::metadata$output) &&
      rmarkdown::metadata$output %in% c(
        "ioslides_presentation", "slidy_presentation",
        "gitbook", "bookdown::gitbook", "radix_article", "radix::radix_article",
        "distill_article", "distill::distill_article"
      )) {

看起来它正在用一长串可能性来测试rmarkdown::metadata$output %in% c( .... )。显然,kableExtra作者假定rmarkdown::metadata$output中总是只有一个条目,但实际上可以有多个条目。例如,这是完全法律的的,因为YAML头中的output条目:

output:
  pdf_document: default
  html_document: default

并且它将给予rmarkdown::metadata$output中的两个条目。一般来说,只使用第一个条目,但它并不总是文本字符串,所以这段代码是错误的。
要解决这个问题,您只需要确保YAML头中只有一种输出格式。

相关问题