This function makes an (educated) guess at an appropriate set of levels for generalized horizon labels using the median of horizon depth mid-points.
guessGenHzLevels(x, hz = "genhz")
SoilProfileCollection objectThis 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 logicial 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.
a list:
# load some example data data(sp1, package='aqp') # upgrade to SoilProfileCollection 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 <- slice(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)