yaml::yaml.load(..., eval.expr = TRUE) 错误:在 Rmarkdown 中使用闪亮时

Error in yaml::yaml.load(..., eval.expr = TRUE) : when using shiny in Rmarkdown

我无法用 shiny 编译任何 .Rmd 文件。例如,此 five-line 文档(或任何文档,例如使用 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 header 中的所有空格和其他特殊符号。一切似乎都是正确的。

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

> 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’

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

我一定是我以前的项目目录中的某个东西阻止了我的 .Rmd 编​​译带有闪亮的文件。我那里确实有很多其他文件(包括其他带有闪亮的 .Rmd,none 已编译)和各种 sub-directories(我也有带有闪亮的 .Rmd 文件,以及它们编译的地方)。

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

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

我仍然很好奇问题出在哪里...

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

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

请注意,结尾缺少标题 "

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