RMarkdown子文档R代码未执行问题求助
解决RMarkdown子文档代码仅打印不执行的问题
以下是几个常见的错误点和对应的解决方法:
主文档调用子文档的方式错误
如果子文档是.Rmd格式,必须使用带child参数的代码块来引入,示例:不要用
source()调用.Rmd文件——source()会把整个文档当作纯文本直接打印,不会解析执行其中的代码块。如果子文档是.R脚本,才用source(here::here("scripts/data_processing.R")),同时确保该代码块没有设置eval=FALSE。子文档代码块格式不规范
若子文档是.Rmd,里面的R代码必须包裹在标准的代码块标记中:# 数据读取示例 raw_data <- read.csv(here::here("data/raw_data.csv")) # 数据清洗代码 cleaned_data <- raw_data[!is.na(raw_data$value), ]缺少````{r}```标记的代码会被识别为普通文本,直接显示而不执行。
全局或局部代码块选项设置错误
检查主文档开头的全局设置代码块,是否误设了eval=FALSE:knitr::opts_chunk$set(echo = TRUE, eval = TRUE) # 确保eval为TRUE如果全局设置了
eval=FALSE,所有代码块默认都不会执行。也可以在子文档的代码块中单独指定eval=TRUE强制执行。文件格式与调用方式不匹配
不要混淆.R和.Rmd的调用逻辑:.Rmd用child参数引入,.R脚本用source()执行,交叉调用必然导致代码不执行、仅打印的问题。
内容的提问来源于stack exchange,提问作者Marc Alexander
相关产品推荐
相关产品推荐

