我正在尝试获取其他人编写的Rmarkdown文件,并使用以下命令从命令行(不是RStudio)运行该文件
Rscript -e 'library(rmarkdown); rmarkdown::render("input.Rmd")'
执行继续将这样的内容打印到我的控制台中,因为它会处理每个块:
label: readDataFiles (with options)
List of 1
$ error: logi TRUE
|.............. | 22%
ordinary text without R code
但是,一个块失败了,执行停止了。我相信这是因为传递给函数的路径无效。因此,我尝试添加一个新块,以在控制台中显示此路径的值 :
``` {r thePath, eval=True}
path
```
但是我只看到输出
label: thePath (with options)
List of 1
$ eval: logi TRUE
path
变量的值不可见。而且我没有得到要查看的HTML文件,因为整个编织过程失败了。如何在控制台中调试它?
我尝试this answer失败。
答案 0 :(得分:0)
您可以使用stop(path)
终止编译,并显示一条错误消息,向您显示路径。例如,将其放在您的.Rmd
文件中:
```{r}
path <- "c:/wrong/path"
stop("path=",path)
```
这是我在命令行上运行此文件时看到的:
label: unnamed-chunk-1
Quitting from lines 19-21 (untitled.Rmd)
Error in eval(expr, envir, enclos) : path=c:/wrong/path
Calls: <Anonymous> ... handle -> withCallingHandlers -> withVisible -> eval -> eval
Execution halted
只要将它放在杀死编译的实际错误之前,就可以看到它。
编辑后添加:您也可以使用warning()
或message()
(如@sindri_baldur所述),但是对于那些您需要将默认块更改为warning=FALSE
或{{ 1}},因此消息将转到message=FALSE
,并显示在控制台中。