R Markdown运行时如何仅在控制台输出被source的R脚本代码与运行结果?
解决方案
你的需求完全可以实现,核心逻辑是利用R Markdown代码块的include=FALSE参数屏蔽所有内容输出到渲染文件,同时调整source()函数的参数让运行过程打印到控制台。
具体修改步骤
你只需要调整data_stats.Rmd文件中beginning代码块的source调用参数即可,修改后的代码块如下:
```{r beginning, include=FALSE, warning=TRUE, message=TRUE} # 保留原有全局环境传入的逻辑,新增控制台输出参数 source("source_file_path.R", local = knitr::knit_global(), echo = TRUE, # 逐行打印运行的R脚本代码到控制台 print.eval = TRUE, # 逐行打印代码的运行结果到控制台 keep.source = TRUE)
## 参数说明 - 代码块的`include=FALSE`参数是核心:只要设置了该参数,当前代码块的所有代码、输出、警告、报错、消息都不会被渲染到最终的PDF输出文件中,只会在你运行render的控制台显示 - `echo=TRUE`控制source的脚本每一行代码都会打印到控制台 - `print.eval=TRUE`控制每一行代码的运行结果都会打印到控制台,方便你排查运行异常 - 代码块额外加的`warning=TRUE`、`message=TRUE`可以保证脚本运行过程中的警告、提示信息也会完整打印到控制台,不会被屏蔽 ## 效果验证 运行你原有的Render脚本后,控制台会完整打印你引入的R脚本的所有运行代码、输出、警告、报错信息,最终生成的PDF文件不会包含任何这部分的内容,完全符合你的需求。 内容的提问来源于stack exchange,提问作者bziggy
相关产品推荐
相关产品推荐

