Learn R Programming

aqp (version 1.42)

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

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

Arguments

x

SoilProfileCollection or data.frame object to check

hzdepths

SoilProfileCollection uses horizonDepths(x) Default: NULL; if x is a data.frame, character vector of column names of top and bottom depths

idname

SoilProfileCollection uses idname(x) Default: NULL; if x is a data.frame, character vector with column name of unique profile ID;

fast

If details about specific test results are not needed, the operation can allocate less memory and run approximately 5x faster. Default: FALSE

byhz

Apply logic tests to profiles or individual horizons?

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