2013-04-15 14 views
8

Sto costruendo piccoli report usando R & knitr, inviando l'output in pdf.In R e knitr, posso sopprimere il messaggio di readOGR?

sto utilizzando diversi file di forma nella mia analisi e ogni volta che uso readOGR funzione del rgdal pacchetto che ho ottenere informazioni su ciò che viene letto, per esempio:

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 

Normalmente, è cosa utile da avere. ma sfortunatamente viene stampato anche nella mia uscita pdf.

Ho provato a impostare le opzioni del blocco di knitr su echo=FALSE, message=FALSE ma sfortunatamente non è stato d'aiuto.

Qual è la soluzione migliore?

+0

hai due soluzioni migliori, ma quando tutto il resto fallisce (cioè un messaggio di stampa in codice C, e pezzo knitr che si desidera vedere altri output di), ho scoperto che 'capture.output' può essere utile. – baptiste

risposta

18

Hai provato a impostare verbose = FALSE nella funzione readOGR?

ad es.

> 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) 

Il relativo pezzo knitr, quindi, potrebbe essere:

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

+1 per 'verbose = FALSE'. Mi piace 'results =" nascondi "' perché è un po 'più trasparente. – A5C1D2H2I1M1N2O1R2T1

+0

@ SimonO101 Doh. Non avevo capito che avrei dovuto cercare una soluzione sul lato readOGR. Tutto funziona ora. Grazie. – radek

6

Il modo "knitr" per farlo sarebbe quello di utilizzare results = 'hide'. Prendendo in prestito da @ di SimonO101 dati di esempio, provare:

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

Nasconde anche i comandi attuali? Quale potrebbe essere ciò che l'OP vuole, naturalmente. –

+0

@ SimonO101, certo. Ma poi basta cambiarlo in 'echo = TRUE' per vedere il codice che è stato inserito. – A5C1D2H2I1M1N2O1R2T1

+0

Ah fantastico. Migliorare con 'knitr' è nella mia lista delle cose da fare. È divertente come tutto si muova nella mia lista delle cose da fare, ma non sembra mai spostarlo. +1 per il modo knitr. –