Rmarkdown编织HTML文档时如何查看警告信息?
如何查看Rmarkdown Knit时产生的警告(控制台
warnings()无效的解决方法) 你遇到的问题很常见——因为RStudio的Knit按钮会启动一个独立的R会话来编译你的文档,这个会话和你当前操作的控制台会话是完全分开的。所以你在控制台输入warnings(),只能看到当前会话的警告,看不到Knit过程中产生的那些,这就是为什么没反应。
下面给你几个实用的方法来查看这些警告,同时保证它们不会出现在最终的HTML输出里:
方法1:用控制台直接渲染文档(最简单)
放弃用Knit按钮,转而在控制台里运行rmarkdown::render()命令来编译你的Rmd文件:
rmarkdown::render("你的文件名.Rmd") # 替换成你的Rmd文件路径
这样渲染过程会在当前控制台会话中进行,所有警告都会直接打印在控制台里,之后你输入warnings()也能看到完整的警告列表。
方法2:捕获警告并保存到文件
如果你还是想用Knit按钮,可以在你的setup代码块里添加一个钩子,把所有警告自动保存到本地文件中,不会出现在HTML里:
{r setup, include=FALSE} knitr::opts_chunk$set(echo = FALSE, warning = FALSE, message = FALSE) # 设置钩子捕获警告并写入文件 knitr::knit_hooks$set(warning = function(x, options) { # 每次捕获警告就追加到knit_warnings.txt文件 write(x, file = "knit_warnings.txt", append = TRUE) return(NULL) # 不将警告输出到HTML文档 })
点击Knit编译后,你的工作目录里会生成一个knit_warnings.txt文件,打开它就能看到所有14条警告的详细内容了。
方法3:临时显示警告到HTML(看完就改回去)
如果你只是想临时看一次警告内容,可以暂时把setup chunk里的warning = FALSE改成warning = TRUE,然后点击Knit。这时候警告会出现在HTML文档对应的代码块下方,看完之后再改回warning = FALSE重新编译即可。
这些方法都能帮你轻松查看Knit过程中的警告,同时满足你不想让警告出现在最终输出里的需求。
内容的提问来源于stack exchange,提问作者xhr489
相关产品推荐
相关产品推荐

