Difference between revisions of "R statistics"
(fix M Benito aricle link) 
(Making text more version independent by removing most references to grass 6 but adding a note for grass 6 users at end (check if last part about R and cygwin is still valid). Cleaning up dead links. Made it slightly more verbose.) 

Line 1:  Line 1:  
{{tocright}}  {{tocright}}  
−  +  === Overview ===  
−  +  High quality statistic analysis in GRASS GIS is possible thanks to an interface to one of the most powerful statistics analysis package around: '''''R''''' ([http://www.rproject.org/ http://www.rproject.org]). This R ←→ GRASS GIS interface is provided by the [https://cran.rproject.org/package=rgrass7 rgrass7] ''R'' addon package. The possibility to directly interact with R strongly increases the statistical and geospatial analysis capabilities of GRASS. See [https://cran.rproject.org/web/views/Spatial.html CRAN Task View: Analysis of Spatial Data] for an overview of the R packages and functions that can be used for reading, visualizing, and analyzing spatial data.  
−  
−  
−  +  R can be used in conjunction with GRASS GIS in different ways:  
−  *  +  * ''Running R 'on top of' GRASS'', transferring GRASS data to R to run statistical functions on the imported data as R objects in memory, and possibly transfer the results back to GRASS. GRASS raster and vector data can be imported in R using the [https://rdrr.io/rforge/rgrass7/man/readVECT.html readVECT()] and [https://rdrr.io/rforge/rgrass7/man/readRAST.html readRAST()] function provided by [http://cran.rproject.org/web/packages/rgrass7/ rgrass7]. Similarly, results can be written back using the [https://rdrr.io/rforge/rgrass7/man/readRAST.html writeRAST()] and [https://rdrr.io/rforge/rgrass7/man/readVECT.html writeVECT()] functions. 
−  *  +  * ''Using R as a scripting language in GRASS''. GRASS functions can be run from R using the [https://rdrr.io/rforge/rgrass7/man/execGRASS.html execGRASS()] function in the ''rgrass7'' package. R scripting tools, such as powerful stringprocessing tools and functions for manipulating file names, can be used to 'glue' different functions and tools together. 
−  +  * ''Using GRASS GIS as a geospatial library in R''. GRASS GIS can be used to extent the geospatial capability of R by: (1) offering an extensive and robust set of geospatial tools, and (2) provides a way to work with very large (largerthanmemory) spatial data sets. See Using 'GRASS GIS functionality within a R session' below for more information.  
−  
−  +  In practice, one will often combine different approaches, with scripts running GRASS functions, importing resulting layers in R for further analysis and visualization, and creating new layers in R that are imported back in GRASS.  
−  
=== Installation ===  === Installation ===  
−  +  To install the R addon '''rgrass7''' on newer versions of R, you simply start R and install the package directly with:  
−  ==  +  <source lang="rsplus"> 
+  install.packages("rgrass7", dependencies = TRUE)  
+  </source>  
+  
+  This will install '''''rgrass7''''' and all its dependencies. To use the addon, you first need to load it:  
−  
<source lang="rsplus">  <source lang="rsplus">  
−  +  library("rgrass7")  
</source>  </source>  
−  +  If you are using Rstudio, you can install the addon in the usual way (tool → packages). For further instructions and for trouble shooting, see [[R_statistics/Installation]]  
−  
−  ===  +  === How to use === 
+  
+  You can use Using R in conjunction with GRASS GIS in two different ways: (1) run R within a GRASS GIS session, and (2) run GRASS GIS within a R session.  
==== Using R within a GRASS GIS session ====  ==== Using R within a GRASS GIS session ====  
−  +  If you are primarily a GIS user who wants to run e.g., some statistical tests not available in GRASS, you probably want to run R from within a GRASS GIS session. To do so, first start GRASS GIS and then start R (or RStudio) from the GRASS GIS command line.  
−  +  
−  +  For more information and examples, see [[R_statistics/rgrass7]]. For a more advanced example of raster Time Series processing with GRASS GIS and R, check the [https://grasswiki.osgeo.org/wiki/Temporal_data_processing/GRASS_R_raster_time_series_processing temporal data processing wiki].  
==== Using GRASS GIS functionality within a R session ====  ==== Using GRASS GIS functionality within a R session ====  
−  +  If you are primarily a R user, who wants to take advantage of the advanced geospatial functions in GRASS, you probably want to use GRASS GIS within a R session. To connect to a GRASS GIS database from within R (or Rstudio), see the instructions on [[R_statistics/rgrass7]]. If you are a first time GRASS GIS User, you may want to check out the information for [https://grass.osgeo.org/grass7/ first time users] first.  
−  
−  === Getting  +  === Getting help === 
−  +  ==== Manual pages ====  
+  If you are in R and have loaded the rgrass7 package, you can get the help page of ''rgrass7'' by typing:  
−  =  +  <source lang="rsplus"> 
+  ?rgrass7  
+  </source>  
−  +  Similarly, to get help for a specific function, e.g., for the function ''readRAST()'', you type:  
−  +  <source lang="rsplus">  
+  ?readRAST  
+  </source>  
−  +  You can also start the ''R'' help page in your browser:  
+  
+  <source lang="rsplus">  
+  help.start()  
+  </source>  
−  +  Now, to get the information about the package, select the '''Packages''' entry and then '''rgrass7'''.  
−  +  ==== Support from the community ====  
−  +  Primary support for ''R'' + GRASS and the ''rgrass7'' package is through the [http://lists.osgeo.org/mailman/listinfo/grassstats grassstats] mailing list.  
−  +  === Useful links ===  
−  +  ==== R ====  
−  *  +  * [http://rspatial.org/ R][http://rspatial.org/ spatial main web page] 
+  * [https://cran.rproject.org/web/views/Spatial.html CRAN Task View: Analysis of Spatial Data]  
+  * [https://cengel.github.io/rspatial/2_spDataTypes.nb.html Introduction to Spatial Data Types in R]  
+  * <code>sp</code>: [https://github.com/edzer/sp R Classes and Methods for Spatial Data]  
+  * <code>sf</code>: [https://github.com/rspatial/sf Simple Features for R]  
+  * [https://blog.dominodatalab.com/appliedspatialdatasciencewithr/ Applied Spatial Data Science with R] (blog post with examples)  
−  +  ==== Related ====  
−  * [  +  * [https://rpy2.bitbucket.io/ Python interface to the R Programming Language]: can be used to run R in GRASS Python scripts. 
−  +  ==== Articles & books ====  
−  +  * Neural Networks with GRASS and R [https://dx.doi.org/10.1016/j.ecolmodel.2006.03.015 DOI: 10.1016/j.ecolmodel.2006.03.015]  
+  * [http://www.asdarbook.org/ Applied Spatial Data Analysis with R]. Roger S. Bivand, Edzer Pebesma and V. GómezRubio. UseR! Series, Springer. 2nd ed. 2013, xviii+405 pp., Softcover. ISBN: 9781461476177  
+  * [http://www.grassbook.org/ GRASS Book], see last chapter  
+  * [http://www.osgeo.org/journal OSGeo Journal] vol. 1 May 2007 (R. Bivand. Using the R— GRASS interface. ''OSGeo Journal'', 1:3133, May 2007. ISSN 16148746).  
+  * [http://grass.osgeo.org/newsletter/grassnews3.html GRASS News vol.3], June 2005 (R. Bivand. Interfacing GRASS 6 and R. ''GRASS Newsletter'', 3:1116, June 2005. ISSN 16148746)  
−  +  ==== Older (but still useful) links ====  
−  +  * [https://web.archive.org/web/20090623093535/http://grass.osgeo.org/statsgrass/grass_geostats.html Using GRASS GIS 6 and R]  
+  * [http://grassold.osgeo.org/statsgrass/r_and_dbms.html Connecting R to RDBMS]  
+  * R. Bivand, 2007: [http://spatial.nhh.no/R/etc/FBK07 Interfacing R and OSGeo projects: status and perspectives]: Presentation with slides and scripts.  
+  * M. Neteler and M. Metz, 2011: ''Introduction to GRASS GIS''. GEOSTAT 2011 Landau. [http://geostatcourse.org/Topic_NetelerMetz_2011 Download workshop material] (includes a R session)  
−  +  === Note for users of the legacy GRASS GIS 6 ===  
−  +  If you are still using GRASS GIS 6, see [[R_statistics/spgrass6]] for instructions and examples of using GRASS GIS in conjunction with R. However, you are strongly encouraged to upgrade to GRASS GIS 7. Not only does it offer many improvements and new functionalities (see this [https://trac.osgeo.org/grass/wiki/Grass7/NewFeatures overview of New features]), it also provides a smoother RGRASS integration on the Windows platform.  
−  +  About using R and GRASS with cygwin: It is possible to use Rterm inside the GRASS shell in cygwin, just as in Unix/Linux or OSX. You should not, however, start Rterm from a cygwin xterm, because Rterm is not expecting to be run in a xterm under Windows, and loses its input. If you use the regular cygwin bash shell, but need to start display windows, start X from within GRASS with startx &, and then start Rterm in the same cygwin shell, not in the xterm.  
−  
−  
[[Category:Installation]]  [[Category:Installation]] 
Revision as of 04:41, 11 August 2017
Overview
High quality statistic analysis in GRASS GIS is possible thanks to an interface to one of the most powerful statistics analysis package around: R (http://www.rproject.org). This R ←→ GRASS GIS interface is provided by the rgrass7 R addon package. The possibility to directly interact with R strongly increases the statistical and geospatial analysis capabilities of GRASS. See CRAN Task View: Analysis of Spatial Data for an overview of the R packages and functions that can be used for reading, visualizing, and analyzing spatial data.
R can be used in conjunction with GRASS GIS in different ways:
 Running R 'on top of' GRASS, transferring GRASS data to R to run statistical functions on the imported data as R objects in memory, and possibly transfer the results back to GRASS. GRASS raster and vector data can be imported in R using the readVECT() and readRAST() function provided by rgrass7. Similarly, results can be written back using the writeRAST() and writeVECT() functions.
 Using R as a scripting language in GRASS. GRASS functions can be run from R using the execGRASS() function in the rgrass7 package. R scripting tools, such as powerful stringprocessing tools and functions for manipulating file names, can be used to 'glue' different functions and tools together.
 Using GRASS GIS as a geospatial library in R. GRASS GIS can be used to extent the geospatial capability of R by: (1) offering an extensive and robust set of geospatial tools, and (2) provides a way to work with very large (largerthanmemory) spatial data sets. See Using 'GRASS GIS functionality within a R session' below for more information.
In practice, one will often combine different approaches, with scripts running GRASS functions, importing resulting layers in R for further analysis and visualization, and creating new layers in R that are imported back in GRASS.
Installation
To install the R addon rgrass7 on newer versions of R, you simply start R and install the package directly with:
install.packages("rgrass7", dependencies = TRUE)
This will install rgrass7 and all its dependencies. To use the addon, you first need to load it:
library("rgrass7")
If you are using Rstudio, you can install the addon in the usual way (tool → packages). For further instructions and for trouble shooting, see R_statistics/Installation
How to use
You can use Using R in conjunction with GRASS GIS in two different ways: (1) run R within a GRASS GIS session, and (2) run GRASS GIS within a R session.
Using R within a GRASS GIS session
If you are primarily a GIS user who wants to run e.g., some statistical tests not available in GRASS, you probably want to run R from within a GRASS GIS session. To do so, first start GRASS GIS and then start R (or RStudio) from the GRASS GIS command line.
For more information and examples, see R_statistics/rgrass7. For a more advanced example of raster Time Series processing with GRASS GIS and R, check the temporal data processing wiki.
Using GRASS GIS functionality within a R session
If you are primarily a R user, who wants to take advantage of the advanced geospatial functions in GRASS, you probably want to use GRASS GIS within a R session. To connect to a GRASS GIS database from within R (or Rstudio), see the instructions on R_statistics/rgrass7. If you are a first time GRASS GIS User, you may want to check out the information for first time users first.
Getting help
Manual pages
If you are in R and have loaded the rgrass7 package, you can get the help page of rgrass7 by typing:
?rgrass7
Similarly, to get help for a specific function, e.g., for the function readRAST(), you type:
?readRAST
You can also start the R help page in your browser:
help.start()
Now, to get the information about the package, select the Packages entry and then rgrass7.
Support from the community
Primary support for R + GRASS and the rgrass7 package is through the grassstats mailing list.
Useful links
R
 Rspatial main web page
 CRAN Task View: Analysis of Spatial Data
 Introduction to Spatial Data Types in R

sp
: R Classes and Methods for Spatial Data 
sf
: Simple Features for R  Applied Spatial Data Science with R (blog post with examples)
Related
 Python interface to the R Programming Language: can be used to run R in GRASS Python scripts.
Articles & books
 Neural Networks with GRASS and R DOI: 10.1016/j.ecolmodel.2006.03.015
 Applied Spatial Data Analysis with R. Roger S. Bivand, Edzer Pebesma and V. GómezRubio. UseR! Series, Springer. 2nd ed. 2013, xviii+405 pp., Softcover. ISBN: 9781461476177
 GRASS Book, see last chapter
 OSGeo Journal vol. 1 May 2007 (R. Bivand. Using the R— GRASS interface. OSGeo Journal, 1:3133, May 2007. ISSN 16148746).
 GRASS News vol.3, June 2005 (R. Bivand. Interfacing GRASS 6 and R. GRASS Newsletter, 3:1116, June 2005. ISSN 16148746)
Older (but still useful) links
 Using GRASS GIS 6 and R
 Connecting R to RDBMS
 R. Bivand, 2007: Interfacing R and OSGeo projects: status and perspectives: Presentation with slides and scripts.
 M. Neteler and M. Metz, 2011: Introduction to GRASS GIS. GEOSTAT 2011 Landau. Download workshop material (includes a R session)
Note for users of the legacy GRASS GIS 6
If you are still using GRASS GIS 6, see R_statistics/spgrass6 for instructions and examples of using GRASS GIS in conjunction with R. However, you are strongly encouraged to upgrade to GRASS GIS 7. Not only does it offer many improvements and new functionalities (see this overview of New features), it also provides a smoother RGRASS integration on the Windows platform.
About using R and GRASS with cygwin: It is possible to use Rterm inside the GRASS shell in cygwin, just as in Unix/Linux or OSX. You should not, however, start Rterm from a cygwin xterm, because Rterm is not expecting to be run in a xterm under Windows, and loses its input. If you use the regular cygwin bash shell, but need to start display windows, start X from within GRASS with startx &, and then start Rterm in the same cygwin shell, not in the xterm.