无法解决.Rmd文件中的错误<匿名>... withCallingHandlers -> withVisible -> eval -> eval ->

11

我试图撰写一份文档,讨论使用错误来向用户传达参数问题。不幸的是,我似乎无法使.Rmd文件编织起来。一个简短的例子:

Intro text

```{r}
some_function <- function(x, y)
{
  if (x < 0) stop("x must be greater than 0")
  x + y
}

some_function(3, 2)
```

```{r}
some_function(-3, 2)
```

当我尝试将它编织成任何格式时,就会出现错误。

Quitting from lines 14-15 (test.Rmd) 
Error in some_function(-3, 2) : x < 0
Calls: <Anonymous> ... withCallingHandlers -> withVisible -> eval -> eval -> some_function

Execution halted

到目前为止,我读过的所有内容都表明这可能是因为a)没有加载软件包或b)Rmd文件中路径设置不正确而引起的问题。

由于我只在这里使用基本功能并且没有引用任何文件(至少我不知道有),所以我认为这两个问题都不是我的问题(但我很乐意错)。

您有什么提示可以让我完成文档编译吗?

解决方案

将以下内容添加到.Rmd文件的顶部

```{r, echo=FALSE}
knitr::opts_chunk$set(error = TRUE)
```

简单解释,RMarkdown v1 默认使用 error = TRUE,但是 RMarkdown v2 使用 error = FALSE。请查看下面 Josh 评论中的链接。


是的,它会在错误时停止运行(很明显发生在some_function(-3, 2)调用处)。您想要的结果是什么?它会打印出错误或其他内容吗? - Josh W.
没错。我希望它显示错误信息。 - Benjamin
2个回答

8
不要在RStudio中使用按钮进行编译。请尝试以下方法:
library("knitr")
knit2html("file")

很有趣。这样可以按照我想要的方式呈现文件。下一个问题是,我是否可以应用它,以便我可以将其编写为软件包中的小品文。 - Benjamin
2
请查看此处:http://rmarkdown.rstudio.com/authoring_migrating_from_v1.html。这只是与knitr不同的默认代码块设置。 - Josh W.
现在我感觉很傻。 我以为我已经尝试过了。 这只能意味着我已经醒太久了。 谢谢,Josh。 - Benjamin
6
如果您在2017年阅读此内容,则可以使用 rmarkdown::render('file.rmd', output_format = 'html_document') 进行渲染。 - Manos Parzakonis
3
如果您正在2019年阅读此内容,则2017年的评论仍然适用。 - user300
显示剩余4条评论

0

在我的情况下(2021年6月,R 4.06,最新的RStudio),替换

```{r eval=T, message=F, warning=F, error=F}

使用

```{r message=FALSE, warning=FALSE, error=FALSE}

修复了这个问题:

在 options$error && options$include 中出现无效的 'x' 类型 Calls: ... call_block -> block_exec -> in_dir -> evaluate -> `

非常奇怪....


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接