R-Markdown:kableExtra (loadNamespace) 问题

D. *_*der 1 r r-markdown kableextra

我想使用 RMarkdown 和 kable 创建一个 pdf 文档:

\n
---\ntitle: "markdown testfile"\nauthor: "author"\ndate: "2023-05-01"\noutput:\n  pdf_document: default\n  html_document: default\n---\n\n```{r setup, include=FALSE}\noptions(repos = list(CRAN="http://cran.rstudio.com/"))\ninstall.packages("tidyverse")\ninstall.packages("kableExtra")\n\nlibrary(tidyverse)\nlibrary(kableExtra)\n```\n\n```{r}\niris %>% \n  dplyr::slice_sample(n = 10) %>% \n  kbl() %>% \n  kable_styling()\n```\n
Run Code Online (Sandbox Code Playgroud)\n

我收到的错误消息是:

\n
Fehler: Laden von Paket oder Namensraum f\xc3\xbcr \'kableExtra\': fehlgeschlagen\n.onLoad in loadNamespace() f\xc3\xbcr \'kableExtra\' fehlgeschlagen, Details:\nAufruf: !is.null(rmarkdown::metadata$output) && rmarkdown::metadata$output %in%\nFehler: \'length = 2\' in coercion to \'logical(1)\'\nAusf\xc3\xbchrung angehalten.\n
Run Code Online (Sandbox Code Playgroud)\n

翻译成英文:

\n
Error: Failed to load package or namespace for \'kableExtra\':\n.onLoad failed in loadNamespace() for \'kableExtra\', Details:\nCall: !is.null(rmarkdown::metadata$output) && rmarkdown::metadata$output %in%\nError: \'length = 2\' in coercion to \'logical(1)\'\nExecution halted.\n
Run Code Online (Sandbox Code Playgroud)\n

我已经尝试重新安装 kableExtra-package。\n如果我单击代码块的执行按钮,它会执行而不会出现任何错误。然而,输出看起来很奇怪:

\n

在此输入图像描述

\n

las*_*suk 6

kableExtra更新到 R 版本 4.3.0 后,我在使用 RMarkdown 文件时遇到了相同的错误。对我来说,在标题中仅列出一种输出格式就解决了问题。

在您的情况下,html_document: default从 RMarkdown 标头中删除应该可以消除该错误。您的示例中的标题应为:

---
title: "markdown testfile"
author: "author"
date: "2023-05-01"
output:
  pdf_document: default
---
Run Code Online (Sandbox Code Playgroud)

kableExtra或者,您可以安装解决该问题的修补版本:

devtools::install_github("kupietz/kableExtra")
Run Code Online (Sandbox Code Playgroud)

当评估具有多个输出的 Markdown 文件中kableExtra 挂钩中的第 23-28 行时,会出现此错误。.onLoad从 R 版本 3.4.0 开始,“使用长度大于 1 的 LHS 或 [..] RHS 调用 or&&现在||总是错误”(请参阅​​ R 变更日志)。kupietz已经有一个相关的GitHub 问题和一个可能的解决方案。