In R and knitr, can I suppress the message of readOGR?

梦想的初衷 提交于 2019-11-30 01:45:56

问题


I'm building small report using R & knitr, sending the output to pdf.

I'm using several shape files in my analysis and whenever I use readOGR function of rgdal package I get information on what is being read, for instance:

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

Normally, it's useful thing to have.. but unfortunately it also prints out in my pdf output.

I tried setting knitr's chunk options to echo=FALSE, message=FALSE but unfortunately it did't help.

Any better solution to that?


回答1:


Have you tried setting verbose = FALSE in the readOGR function itself?

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)

The relevant knitr chunk, then, could be:

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



回答2:


The "knitr" way to do this would be to use results = 'hide'. Borrowing from @SimonO101's example data, try:

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


来源:https://stackoverflow.com/questions/16012865/in-r-and-knitr-can-i-suppress-the-message-of-readogr

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!