Learn R Programming

aqp (version 2.1.0)

checkHzDepthLogic: Check a SoilProfileCollection object for errors in horizon depths.

Description

This function inspects a SoilProfileCollection object, looking for four common errors in horizon depths:

  1. bottom depth shallower than top depth

  2. equal top and bottom depth

  3. missing top or bottom depth (e.g. NA)

  4. gap or overlap between adjacent horizons (only if byhz = FALSE)

Usage

checkHzDepthLogic(
  x,
  hzdepths = NULL,
  idname = NULL,
  fast = FALSE,
  byhz = FALSE
)

Value

A data.frame containing profile IDs, validity boolean (valid) and test results if fast = FALSE.

The data.frame will have as many rows as profiles in x (length(x)).

  • id : Profile IDs, named according to idname(x)

  • valid : boolean, profile passes all of the following tests

  • depthLogic : boolean, errors related to depth logic

  • sameDepth : boolean, errors related to same top/bottom depths

  • missingDepth : boolean, NA in top / bottom depths

  • overlapOrGap : boolean, gaps or overlap in adjacent horizons (NA when byhz = TRUE)

Arguments

x

SoilProfileCollection or data.frame object to check

hzdepths

character vector, describing top and bottom depths in a SoilProfileCollection or data.frame. horizonDepths(x) is used when x is a SoilProfileCollection.

idname

character, describing the column containing profile IDs in a SoilProfileCollection or data.frame. idname(x) is used when x is a SoilProfileCollection.

fast

logical, When TRUE, details about specific test results are not needed, the operation can allocate less memory and run approximately 5x faster.

byhz

logical, apply logic tests to profiles (FALSE) or individual horizons (TRUE)?

Author

D.E. Beaudette, A.G. Brown, S.M. Roecker

Examples

Run this code

## sample data

data(sp3)
depths(sp3) <- id ~ top + bottom

# these data should be clean
res <- checkHzDepthLogic(sp3)

head(res)

# less memory if only concerned about net validity
res <- checkHzDepthLogic(sp3, fast = TRUE)

head(res)

Run the code above in your browser using DataLab