R Notebook渲染报错:unexpected symbol问题求助
解决R Notebook用
source()执行时的语法报错问题 问题原因
你用source("~/Documents/testing.Rmd")执行Rmd文件时出现报错,核心原因是:source()函数仅用于执行纯R脚本(.R文件),它会把文件里的所有内容都当作R代码解析。而你的.Rmd文件中包含Markdown格式的普通文本(比如第11行的Ensures that working directory...),这些文本不是合法的R代码,所以触发了语法错误。
而你能正常生成HTML,是因为rmarkdown的渲染流程会自动区分Markdown文本和代码块,只执行代码块内的R代码,完全忽略Markdown部分,所以不会出现解析错误。
解决方案
方案1:用正确的方式渲染Rmd文件
不要用source()处理Rmd文件,改用rmarkdown::render(),这是官方推荐的Rmd文件渲染方法:
rmarkdown::render("~/Documents/testing.Rmd", output_format = "html_document")
方案2:仅提取并执行Rmd中的代码块
如果你的需求是执行Rmd里的代码而非生成HTML,可以用knitr::purl()把Rmd中的代码提取为纯R脚本,再执行:
# 将Rmd中的代码提取到临时R文件 knitr::purl("~/Documents/testing.Rmd", output = "temp_code.R") # 执行提取后的纯R脚本 source("temp_code.R") # 执行完成后可删除临时文件 file.remove("temp_code.R")
内容的提问来源于stack exchange,提问作者SilvaC
相关产品推荐
相关产品推荐

