【问题标题】:Error in yaml::yaml.load(..., eval.expr = TRUE) : when using shiny in Rmarkdownyaml::yaml.load(..., eval.expr = TRUE) 中的错误:在 Rmarkdown 中使用闪亮时
【发布时间】:2020-09-25 02:23:29
【问题描述】:

我无法编译任何带有闪亮的 .Rmd 文档。例如,这个五行文档(或任何文档,例如使用 File->New File -> R Markdown ... : Shiny Document 创建的文档)

---
title: "Untitled"
output: flexdashboard::flex_dashboard
runtime: shiny
---
End of my very short document.

单击“运行文档”按钮时出现此错误:

==> rmarkdown::run('/home/gxd/R-codes/lesson10/tmp.Rmd', shiny_args = list(launch.browser = FALSE), auto_reload = FALSE, dir = '/home/gxd/R-codes/lesson10',  render_args = list(encoding = 'UTF-8'));
Error in yaml::yaml.load(..., eval.expr = TRUE) : 
  Scanner error: while scanning a quoted scalar at line 2, column 8 found unexpected end of stream at line 8, column 15
Calls: <Anonymous> ... parse_yaml_front_matter -> yaml_load -> <Anonymous>
Execution halted

遵循此建议: RMarkdown error in YAML 我检查了 YAML 标头中的所有空格和其他特殊符号。一切似乎都是正确的。

有谁知道是什么原因造成的以及如何解决?我的会话信息如下:

> sessionInfo()
R version 3.6.1 (2019-07-05)
...
>   packageVersion("shiny") 
[1] ‘1.5.0’
>   packageVersion("rmarkdown") 
[1] ‘2.3’
>   packageVersion("knitr") 
[1] ‘1.28’

【问题讨论】:

  • 对我来说无法重现。无论如何,我建议你更新你的 R 和 RStudio。

标签: shiny r-markdown knitr


【解决方案1】:

我发现如果我创建一个新项目,然后我用 Shiny 创建一个新的 R Markdown 文件,那么它编译得很好。

我必须是我以前的项目目录中的某个东西,它阻止了用闪亮的文件编译我的 .Rmd。我那里确实有很多其他文件(包括其他带有闪亮的 .Rmd,没有一个已编译)和各种子目录(我也有带有闪亮的 .Rmd 文件,它们在哪里编译)。

但我仍然没有弄清楚究竟是什么导致了这个问题。我试图删除 ./Rproj.user 和 .Rhistory - 它没有任何效果。

所以我创建了一个新的干净目录,并将上面显示的简单 5 行 .Rmd 文件放入并编译。

我还是很想知道问题出在哪里……

更新:
现在我知道问题出在哪里了! - 在同一个目录中,我有另一个不相关的“未完成”.Rmd 文件。 这个其他 .Rmd 文件的 YAML 标头在标题中带有未完成(打开)的字符串:

title: "The Header of another Rmd file that was in the same directory

注意,标题缺少关闭 "。

修复后,我现在可以在同一目录中编译任何其他 .Rmd。
但是,如果我不修复它,我将不会在同一目录中编译任何其他 .Rmd! 这有点奇怪,但就是这样。

【讨论】:

  • 奇怪,但它也帮助了我。
猜你喜欢
  • 2023-03-25
  • 2014-10-12
  • 2018-04-17
  • 2016-02-03
  • 2018-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多