View source: R/generalize.hz.R
generalize.hz | R Documentation |
Generalize a vector of horizon names, based on new classes, and REGEX
patterns. Or create a new column ghl
in a SoilProfileCollection
(requires a horizon designation name to be defined for the collection, see details)
generalize.hz(
x,
new,
pattern,
non.matching.code = "not-used",
hzdepm = NULL,
ordered = !missing(hzdepm),
...
)
## S4 method for signature 'character'
generalizeHz(
x,
new,
pattern,
non.matching.code = "not-used",
hzdepm = NULL,
ordered = !missing(hzdepm),
...
)
## S4 method for signature 'SoilProfileCollection'
generalizeHz(
x,
new,
pattern,
non.matching.code = "not-used",
hzdepm = NULL,
ordered = !missing(hzdepm),
ghl = "genhz",
...
)
x |
character vector of horizon names or a |
new |
character vector of generalized horizon labels (GHL) |
pattern |
character vector of REGEX patterns, same length as |
non.matching.code |
character, label used for any horizon not matched by |
hzdepm |
numeric vector of horizon mid-points; |
ordered |
logical, |
... |
additional arguments passed to |
ghl |
Generalized Horizon Designation column name (to be created/updated when |
When x
is a SoilProfileCollection
the ghl
column will be updated with the factor results. This requires that the "horizon designation name" metadata be defined for the collection to set the column for input designations.
factor (possibly an ordered factor) of the same length as x
(if character) or as number of horizons in x
(if SoilProfileCollection
)
D.E. Beaudette
Beaudette, D.E., Roudier, P., Skovlin, J. (2016). Probabilistic Representation of Genetic Soil Horizons. In: Hartemink, A., Minasny, B. (eds) Digital Soil Morphometrics. Progress in Soil Science. Springer, Cham. https://doi.org/10.1007/978-3-319-28295-4_18
hzdesgnname()
data(sp1)
# check original distribution of hz designations
table(sp1$name)
# generalized horizon labels
# character vector input
sp1$genhz <- generalizeHz(
sp1$name,
new = c('O','A','B','C','R'),
pattern = c('O', '^A','^B','C','R'),
ordered = TRUE
)
# see how we did / what we missed
table(sp1$genhz, sp1$name)
## a more advanced example, requries `perl = TRUE`
# example data
x <- c('A', 'AC', 'Bt1', '^AC', 'C', 'BC', 'CB')
# new labels
n <- c('A', '^AC', 'C')
# patterns:
# "A anywhere in the name"
# "literal '^A' anywhere in the name"
# "C anywhere in name, but without preceding A"
p <- c('A', '^A', '(?<!A)C')
# note additional argument
res <- generalizeHz(
x,
new = n,
pattern = p,
perl = TRUE
)
# double-check: OK
table(res, x)
## apply to a SoilProfileCollection
data(sp1)
depths(sp1) <- id ~ top + bottom
# must set horizon designation metadata
hzdesgnname(sp1) <- 'name'
# result is a SoilProfileCollection
x <- generalizeHz(
sp1,
new = c('O','A','B','C','R'),
pattern = c('O', '^A','^B','C','R'),
ordered = TRUE
)
# GHL stored in 'genhz' column
x$genhz
# GHL metadata is set
GHL(x)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.