无法抑制来自knitr的消息

无法抑制来自knitr的消息,r,knitr,R,Knitr,下面的代码仍然会导致 ```{r echo=FALSE, warning=FALSE} rm(list=ls()) library(randomForest) library(tree) library(ggplot2) ``` 以下内容-如何抑制以下内容 ## randomForest 4.6-12 ## Type rfNews() to see new features/changes/bug fixes. ## ## Attaching package:'ggplot2' ## T

下面的代码仍然会导致

```{r echo=FALSE, warning=FALSE}
rm(list=ls())
library(randomForest)
library(tree)
library(ggplot2)
```
以下内容-如何抑制以下内容

## randomForest 4.6-12

## Type rfNews() to see new features/changes/bug fixes.

##
## Attaching package:'ggplot2'

## The following object is masked from'package:randomForest':
##
##     margin
您可以添加message=FALSE:

如果这不起作用,则说明程序包作者错误地使用了消息以外的其他内容作为消息。

您可以添加message=FALSE:


如果这样做不起作用,则说明包作者错误地使用了消息以外的其他内容作为消息。

在我看来,最好避免对消息或警告进行全面抑制,因为这样很容易忽略您确实希望得到警告的实际问题。我建议在每次包加载时有选择地禁用包加载消息。这样,如果向库列表中添加新包,您将看到生成的任何错误或消息,并可以选择抑制它们或以其他方式处理它们

```{r echo=FALSE}
rm(list=ls())
suppressMessages(library(randomForest))
library(tree)
suppressMessages(library(ggplot2))
```

在我看来,最好避免对消息或警告进行全面压制,因为它很容易忽略您确实希望得到警告的真正问题。我建议在每次包加载时有选择地禁用包加载消息。这样,如果向库列表中添加新包,您将看到生成的任何错误或消息,并可以选择抑制它们或以其他方式处理它们

```{r echo=FALSE}
rm(list=ls())
suppressMessages(library(randomForest))
library(tree)
suppressMessages(library(ggplot2))
```

一般来说,在抑制警告时应该小心,但我认为根据定义抑制消息通常是安全的。如果消息真的很重要,作者应该使用警告,尤其是包启动消息。这些信息可能会令人惊讶,并吸引不知道的人不必要的注意。总之,我认为你有道理,但我会在这种情况下使用chunk选项message=FALSE来获得更清晰的代码。理论上我同意你的观点,在python中这通常是我的立场。但是用R,我看到很多来自包负载的消息,我认为是警告,而不是消息。我选择像对待警告一样对待他们。但这确实让代码变得很难看;我仍在试图找出一种方法使其更干净。一般来说,在抑制警告时应该小心,但我认为根据定义抑制消息通常是安全的。如果消息真的很重要,作者应该使用警告,尤其是包启动消息。这些信息可能会令人惊讶,并吸引不知道的人不必要的注意。总之,我认为你有道理,但我会在这种情况下使用chunk选项message=FALSE来获得更清晰的代码。理论上我同意你的观点,在python中这通常是我的立场。但是用R,我看到很多来自包负载的消息,我认为是警告,而不是消息。我选择像对待警告一样对待他们。但这确实让代码变得很难看;我还在想办法让它更干净。