2013-04-15 2 views
8

Я строю небольшой отчет, используя R & knitr, отправив вывод в pdf.В R и knitr, могу ли я подавить сообщение readOGR?

Я использую несколько файлов формы в моем анализе и всякий раз, когда я использую 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.

Я попробовал установить параметры куска наряда до echo=FALSE, message=FALSE, но, к сожалению, он не помог.

Любое лучшее решение?

+0

вы получили две лучшие решения, но когда все остальное терпит неудачу (то есть сообщение печати в коде C и knitr кусок, который вы хотите увидеть другой вывод), я обнаружил, что 'capture.output' может быть полезна. – baptiste

ответ

18

Вы пробовали установить verbose = FALSE в функции readOGR?

например.

> 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) 
``` 
+0

+1 для 'verbose = FALSE'. Мне нравится 'results =" hide "', потому что он немного более прозрачен. – A5C1D2H2I1M1N2O1R2T1

+0

@ SimonO101 Doh. Я не понимал, что должен искать решение на стороне readOGR. Теперь все работает. Благодарю. – radek

6

"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") 
``` 
+0

Скрывает ли это собственно команды? Скорее всего, это то, чего хочет OP. –

+0

@ SimonO101, конечно. Но затем просто измените его на 'echo = TRUE', чтобы увидеть введенный код. – A5C1D2H2I1M1N2O1R2T1

+0

Ах круто. Улучшение с 'knitr' - это мой список дел. Забавно, как все переходит в мой список дел, но никогда не кажется, что он отключается. +1 для пучка. –