如何在使用R的knitr时禁止包含库时出现警告?

20

我正在使用knitr来生成R的HTML输出。

问题是,当我包括一个库,比如

library(car)

我的R markdown文档会包括警告:

## Warning: package 'car' was built under R version 2.15.3

我已经尝试了以下解决方案,但都不起作用:

```{r }
invisible(library(car)

```{r message = FALSE, warnings = FALSE}

与之一同

```{r results = 'hide'}

很不幸,这些选项都无效。

我尝试了更多选项,并提供了实际的knitr输出:

输入图像描述 输入图像描述 输入图像描述

如何在R中使用knitr时禁止包含库时出现警告?

提前感谢。


1
你查看过 ?suppressWarnings 吗? - Rich Scriven
它对我起作用了(R3.1,OS X 10.9.2,knitr 1.5),没有任何选项。您是否正在使用“car_2.0-19”软件包?您正在运行哪个R版本/等等? - hrbrmstr
2
再次尝试 suppressWarnings(library(psych)) - Rich Scriven
6
使用 warning=FALSE, message=FALSE 参数可以消除我遇到的这些启动信息中的警告信息。 - Dason
8
问题归结于拼写错误,warnings 应修改为 warning = FALSE。同时注意你的 R 版本很可能不是 0.98.501,这听起来更像是 RStudio 的版本号。更好的解决方案是升级 R 并运行 update.packages() 命令,这样这些警告就会消失(它们不是无缘无故出现的)。 - Yihui Xie
显示剩余3条评论
4个回答

18

设置以下代码块选项:message=FALSE, warning=FALSE, include=FALSE


8

我的首选方法是

suppressMessages(library(foo))

如果有疑问,也要以与foo相同的方式加载所有依赖项。

一个具体的例子:

R> suppressMessages(library(KernSmooth))
R>

我建议那些提出其他方法的人也尝试这种方法。在这种情况下,suppressPackageStartupMesssage()也可以起作用。


suppressPackageStartupMessages 可能更适合这种情况。 - Andrey Shabalin
3
实际上不是:它只会抑制使用正确命令的启动消息;大多数使用直接的cat(),而您的建议不会阻止这些消息,而我的方法可以。我已经尝试过了。 - Dirk Eddelbuettel

4

如果您查看?library,有一种非常简单的直接方式可以做到这一点。

library(car, quietly = TRUE)

它应该可以很好地消除大多数警告和附件消息。如果不起作用,请添加warn.conflicts = FALSE


并不是全都有问题,但这听起来更像是要责备M.P. Wand,而不是其他什么;对于这类警告,它(应该)能够正常工作,这些警告大约涉及构建差异。 - user3471268

1
在代码块选项中使用message=FALSE可以完成此任务。

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