R package container and convenience functions for soil data summary, comparison, and evaluation reports used mainly by NRCS staff.
Reports are a handy way to summarize large volumes of data, particularly with figures and tables. soilReports
is an R package “container” designed to accommodate the maintenance, documentation, and distribution of R-based reporting tools. Inside the package are report templates, setup files, documentation, and example configuration files.
The soilReports
package provides a couple important helper functions that do most of the work:
listReports()
: print a listing of the available reports, version numbers, and basic metadatareportSetup(...)
: download any R packages required by the named report, e.g. “region2/mu-comparison”reportInit(...) |
reportCopy(...) : copy a named report template into a specific directory |
reportUpdate(...)
: update a named report in a specific directory, replacing report.Rmd
onlyEach report contains several files:
report.Rmd
: an R Markdown file that is “knit” into a final HTML or DOC reportREADME.md
: report-specific instructionscustom.R
: report-specific functionscategorical_definitions.R
: report-specific color mapping and metadata for categorical raster data (user-editable)config.R
: configuration file to set report parameters (user-editable)changes.txt
: notes on changes and associated version numbersNOTE: The following instructions are rarely, if ever, needed with R 4.2+
On many of our machines, the $HOME
directory points to a network share. This can cause all kinds of problems when installing R packages, especially if you connect to the network by VPN. The following code is a one-time solution and will cause R packages to be installed on a local disk by adding an .Rprofile
file to your $HOME
directory. This file will instruct R to use C:/Users/FirstName.LastName/Documents/R/
for installing R packages. Again, you only have to do this once.
# determine your current $HOME directory
path.expand('~')
# install .Rprofile
source('https://raw.githubusercontent.com/ncss-tech/soilReports/master/R/installRprofile.R')
installRprofile(overwrite=TRUE)
Run this code if you don’t yet have the soilReports
package or after a new version of R has been installed on your machine.
# need devtools to install packages from GitHub
install.packages('remotes', dep = TRUE)
# get the latest version of the 'soilReports' package
remotes::install_github("ncss-tech/soilReports", dependencies = FALSE, upgrade_dependencies = FALSE)
# load this library
library(soilReports)
# list reports in the package
listReports()
# install required packages for a named report
reportSetup(reportName='region2/mu-comparison')
# copy report file 'MU-comparison' to your current working directory
reportInit(reportName='region2/mu-comparison', outputDir='MU-comparison')
Updates to report templates, documentation, and custom functions are available after installing the latest soilReports
package from GitHub. Use the following examples to update an existing copy of the “region2/mu-comparison” report. Note that your existing configuration files will not be modified.
# get latest version of package + report templates
remotes::install_github("ncss-tech/soilReports", dependencies=FALSE, upgrade_dependencies=FALSE)
# load this library
library(soilReports)
# get any new packages that may be required by the latest version
reportSetup(reportName='region2/mu-comparison')
# overwrite report files in an existing report instance (does NOT overwrite config)
reportUpdate(reportName='region2/mu-comparison', outputDir='MU-comparison')
update.packages(ask=FALSE, checkBuilt=TRUE)
.reportSetup()
, consider adding the upgrade=TRUE
argument.update.packages(ask=FALSE, checkBuilt=TRUE)
.See issue tracker for TODO items.