2013-04-15 60 views
8

我正在編寫使用R & knitr的小型報告,將輸出發送至pdf。在R和knitr中,我可以抑制readOGR的消息嗎?

我用幾個形狀文件在我的分析,每當我用rgdalreadOGR功能我得到的是正在讀什麼樣的信息,例如:

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

您是否嘗試過在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) 
``` 
+0

+1 for'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爲針織方式。 –

相關問題