Normalize a range argument into a true numeric range
Source:R/normalize.range.arg.r
normalize_range_arg.Rd
Several functions in this package and the suite accept a range argument with a flexible syntax. To ensure that all functions and methods behave in the same way this code has been factored out into a separate function.
Arguments
- arg.range
a numeric vector of length two, or any other object for which function range() will return a range of wavelengths (nm).
- wl.range
a numeric vector of length two, or any other object for which function range() will return a range of wavelengths (nm), missing values are not allowed.
- trim
logical If TRUE the range returned is bound within
wl.range
while if FALSE it can be broader.
Details
The arg.range
argument can contain NAs which are replaced by
the value at the same position in wl.range
. In addition
a NULL argument for range
is converted into wl.range
.
The wl.range
is also the limit to which the returned value
is trimmed if trim == TRUE
. The idea is that the value supplied as
wl.range
is the wavelength range of the data.
Examples
normalize_range_arg(c(NA, 500), range(sun.spct))
#> [1] 280 500
normalize_range_arg(c(300, NA), range(sun.spct))
#> [1] 300 800
normalize_range_arg(c(100, 5000), range(sun.spct), FALSE)
#> [1] 100 5000
normalize_range_arg(c(NA, NA), range(sun.spct))
#> [1] 280 800
normalize_range_arg(c(NA, NA), sun.spct)
#> [1] 280 800