【问题标题】:In R and knitr, can I suppress the message of readOGR?在 R 和 knitr 中,我可以抑制 readOGR 的消息吗?
【发布时间】:2013-04-15 10:24:15
【问题描述】:

我正在使用 R & knitr 构建小型报告,将输出发送到 pdf。

我在分析中使用了几个形状文件,每当我使用 readOGR 包的 readOGR 函数时,我都会获得有关正在读取的内容的信息,例如:

OGR data source with driver: ESRI Shapefile 
Source: "__PATH_HERE__", layer: "__NAME__OF__LAYER__HERE__"
with 148 features and 5 fields
Feature type: wkbPolygon with 2 dimensions

通常,拥有它很有用。但不幸的是,它也会在我的 pdf 输出中打印出来。

我尝试将 knitr 的块选项设置为 echo=FALSE, message=FALSE,但不幸的是它没有帮助。

有更好的解决方案吗?

【问题讨论】:

  • 您有两个更好的解决方案,但是当其他一切都失败时(即在 C 代码中打印消息,以及您想要查看其他输出的 knitr 块),我发现capture.output 可能很有用。

标签: r knitr ogr


【解决方案1】:

您是否尝试过在readOGR 函数本身中设置verbose = FALSE

例如

> dsn <- system.file("vectors", package = "rgdal")[1]
> cities <- readOGR(dsn=dsn, layer="cities")
OGR data source with driver: ESRI Shapefile 
Source: "C:/Users/sohanlon/Dropbox/R/R64_Win_Libs/rgdal/vectors", layer: "cities"
with 606 features and 4 fields
Feature type: wkbPoint with 2 dimensions
# Set verbose = FALSE
> cities <- readOGR(dsn=dsn, layer="cities" , verbose = FALSE)

那么,相关的 knitr 块可能是:

```{r, echo=FALSE, message=FALSE}
library(rgdal)
dsn <- system.file("vectors", package = "rgdal")[1]
cities <- readOGR(dsn=dsn, layer="cities", verbose=FALSE)
```

【讨论】:

  • +1 表示verbose = FALSE。我喜欢results = "hide",因为它更透明一点。
  • @SimonO101 多哈。我没有意识到我应该在 readOGR 方面寻找解决方案。现在都在工作。谢谢。
  • 供参考,在sf使用quiet = TRUE
【解决方案2】:

执行此操作的“knitr”方法是使用results = 'hide'。借鉴@SimonO101 的示例数据,尝试:

```{r, results='hide', echo=FALSE, message=FALSE}
library(rgdal)
dsn <- system.file("vectors", package = "rgdal")[1]
cities <- readOGR(dsn=dsn, layer="cities")
```

【讨论】:

  • 这是否也隐藏了实际命令?当然,这可能是 OP 想要的。
  • @SimonO101,当然。但随后只需将其更改为 echo=TRUE 即可查看输入的代码。
  • 啊酷。使用knitr 变得更好是我的待办事项。有趣的是,一切都在我的待办事项列表中进行,但似乎从未将其关闭。 +1 为 knitr 方式。
  • 谢谢 - 我喜欢结果 = "hide" 仍然让我在最终文档中看到我的图像/地图。
【解决方案3】:

如果您使用st_read 而不是readOGR,请使用quiet=TRUE 作为附加参数来隐藏日志

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多