2015-10-06 52 views
1

我正在嘗試使用raster::extract(raster,spatialpolygons)的腳本來源,因此它會打印有關用於提取的多邊形的消息。該文件的最終輸出是我想要顯示的ggplot,但我不想從R顯示任何消息。從源腳本中刪除郵件

```{r percent of avg, echo=FALSE,message=FALSE,warning=FALSE,fig.width=15} 
source('src/analysis/extract_huc4_elev.R') 
``` 

沒有任何塊選項回顯,消息或警告似乎會抑制此輸出。如果我使用include=F那麼該圖不會顯示。

編輯:我有一個打印語句,這樣解釋它的一些: - /和一些額外的偵探發現它實際上是這一行:

> huc4=readOGR('data/gis','UpperCRB') 

## OGR data source with driver: ESRI Shapefile 
## Source: "data/gis", layer: "UpperCRB" 
## with 8 features 
## It has 9 fields 

,你可以隱藏在腳本消息:

> huc4=readOGR('data/gis','UpperCRB',verbose=F) 

我還是希望有一種方法可以在markdown輸出中隱藏所有腳本消息,例如在這種情況下,我正在採購一個R文件,因爲我認爲它會更易於維護(這是我的第一個可重複使用的報告) - 這意味着我仍然希望看到這些消息(打印語句,詳細輸出等)在腳本本身上工作。

也,這裏是sessionInfo()以防萬一:

## R version 3.2.2 (2015-08-14) 
## Platform: x86_64-apple-darwin13.4.0 (64-bit) 
## Running under: OS X 10.9.5 (Mavericks) 
## 
## locale: 
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 
## 
## attached base packages: 
## [1] parallel stats  graphics grDevices utils  datasets methods 
## [8] base  
## 
## other attached packages: 
## [1] ncdf4_1.13  gstat_1.0-26 doMC_1.3.3  iterators_1.0.7 
## [5] foreach_1.4.2 ipred_0.9-5  MASS_7.3-44  rgdal_1.0-7  
## [9] readr_0.1.1  dplyr_0.4.3  plyr_1.8.3  tidyr_0.3.1  
## [13] raster_2.4-20 sp_1.2-0  ggplot2_1.0.1 
## 
## loaded via a namespace (and not attached): 
## [1] Rcpp_0.12.1  formatR_1.2.1 xts_0.9-7  class_7.3-13  
## [5] tools_3.2.2  rpart_4.1-10  digest_0.6.8  evaluate_0.8  
## [9] gtable_0.1.2  lattice_0.20-33 DBI_0.3.1  yaml_2.1.13  
## [13] prodlim_1.5.5 proto_0.3-10  stringr_1.0.0 knitr_1.11  
## [17] grid_3.2.2  nnet_7.3-11  spacetime_1.1-4 R6_2.1.1   
## [21] survival_2.38-3 rmarkdown_0.8 lava_1.4.1  reshape2_1.4.1 
## [25] magrittr_1.5  intervals_0.15.1 codetools_0.2-14 scales_0.3.0  
## [29] htmltools_0.2.6 splines_3.2.2 assertthat_0.1 colorspace_1.2-6 
## [33] stringi_0.5-5 lazyeval_0.1.10 munsell_0.4.2 FNN_1.1   
## [37] zoo_1.7-12 
+0

有什麼消息?我沒有得到任何。你能提供一個可重現的例子嗎?你使用的是什麼版本的'raster'? – RobertH

+0

@RobertH感謝您指引我朝着正確的方向 - 我認爲我的問題仍然存在於略有不同的環境中(請參閱斜體編輯) – Dominik

+1

有一些通用的方法來抑制消息,並且您正在使用這些方法。不幸的是,readOGR使用'cat'這是一個壞主意(http://yihui.name/knitr/demo/output/),但至少你可以用'verbose = FALSE'關閉它,所以它不是那麼糟糕.... – RobertH

回答

0

基於該@RobertH評論http://yihui.name/knitr/demo/output的鏈接,我測試後發現,您可以使用results='hide',fig.keep='high',fig.show='asis'和文本輸出,如打印()和cat()語句不會打印在html中,但圖形仍然會通過!

0

這個搞亂多一些之後,我意識到另一種方式來做到這一點是使用include=F並保存情節盤在R腳本,然後外面將R塊使用![Figure](/path/to/fig.png)