在R和knitr中,我可以抑制readOGR的消息吗?

时间:2013-04-15 10:24:16

标签: r knitr ogr

我正在使用R& amp; knitr,将输出发送到pdf。

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

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的chunk选项设置为echo=FALSE, message=FALSE但不幸的是它没有帮助。

有什么更好的解决方案吗?

3 个答案:

答案 0 :(得分:25)

您是否尝试在verbose = FALSE功能本身设置readOGR

e.g。

> 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 chunk可能是:

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

答案 1 :(得分:9)

“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")
```

答案 2 :(得分:1)

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