# guessGenHzLevels: Guess Appropriate Ordering for Generalized Horizon Labels In aqp: Algorithms for Quantitative Pedology

 guessGenHzLevels R Documentation

## Guess Appropriate Ordering for Generalized Horizon Labels

### Description

This function makes an (educated) guess at an appropriate set of levels for generalized horizon labels using the median of horizon depth mid-points.

### Usage

``````guessGenHzLevels(x, hz = GHL(x, required = TRUE))
``````

### Arguments

 `x` a `SoilProfileCollection` object `hz` name of horizon-level attribute containing generalized horizon labels, see details

### Details

This function is useful when groups of horizons have been generalized via some method other than `generalize.hz`. For example, it may be useful to generalize horizons using labels derived from slice depths. The default sorting of these labels will not follow a logical depth-wise sorting when converted to a factor. `guessGenHzLevels` does a good job of "guessing" the proper ordering of these labels based on median horizon depth mid-point.

### Value

a list:

 `levels` a vector of levels sorted by median horizon depth mid-point `median.depths` a vector of median horizon mid-points

### Author(s)

D.E. Beaudette

`generalize.hz`

### Examples

``````
data(sp1, package='aqp')

depths(sp1) <- id ~ top + bottom

# generalize horizon names
n <- c('O', 'A', 'B', 'C')
p <- c('O', 'A', 'B', 'C')
sp1\$genhz <- generalize.hz(sp1\$name, n, p)

# note: levels are in the order in which originally defined:
levels(sp1\$genhz)

# generalize horizons by depth slice
s <- dice(sp1, c(5, 10, 15, 25, 50, 100, 150) ~ .)
s\$slice <- paste0(s\$top, ' cm')
# not a factor
levels(s\$slice)

# the proper ordering of these new labels can be guessed from horizon depths
guessGenHzLevels(s, 'slice')

# convert to factor, and set proper order
s\$slice <- factor(s\$slice, levels=guessGenHzLevels(s, 'slice')\$levels)

# that is better
levels(s\$slice)

``````

aqp documentation built on Sept. 11, 2024, 7:11 p.m.