Method to compute the "parallel" quantiles of values across members of a collection of spectra or of a spectral object containing multiple spectra in long form.
Usage
s_quantile(x, probs, na.rm, ...)
# Default S3 method
s_quantile(x, probs = NA, na.rm = FALSE, ...)
# S3 method for class 'generic_spct'
s_quantile(x, probs = c(0.25, 0.5, 0.75), na.rm = FALSE, ..., simplify = TRUE)
# S3 method for class 'source_mspct'
s_quantile(x, probs = c(0.25, 0.5, 0.75), na.rm = FALSE, ..., simplify = TRUE)
# S3 method for class 'response_mspct'
s_quantile(x, probs = c(0.25, 0.5, 0.75), na.rm = FALSE, ..., simplify = TRUE)
# S3 method for class 'filter_mspct'
s_quantile(x, probs = c(0.25, 0.5, 0.75), na.rm = FALSE, ..., simplify = TRUE)
# S3 method for class 'reflector_mspct'
s_quantile(x, probs = c(0.25, 0.5, 0.75), na.rm = FALSE, ..., simplify = TRUE)
# S3 method for class 'calibration_mspct'
s_quantile(x, probs = c(0.25, 0.5, 0.75), na.rm = FALSE, ..., simplify = TRUE)
# S3 method for class 'cps_mspct'
s_quantile(x, probs = c(0.25, 0.5, 0.75), na.rm = FALSE, ..., simplify = TRUE)
# S3 method for class 'raw_mspct'
s_quantile(x, probs = c(0.25, 0.5, 0.75), na.rm = FALSE, ..., simplify = TRUE)
Arguments
- x
An R object.
- probs
numeric vector of probabilities with values in \([0, 1]\).
- na.rm
logical A value indicating whether NA values should be stripped before the computation proceeds.
- ...
Further arguments passed to or from other methods.
- simplify
logical If
TRUE
and a single quantile is computed, return an spectrum by itself instead of as a single member of a collection.
Value
If x
is a collection spectral of objects, such as a
"filter_mspct"
object, the returned object is of same class as the
the collection, such as "filter_mspct"
, containing one member
summary spectrum for each value in probs
with the same variable
names as in the input. If a single quantile is computed and simplify
= TRUE
a single spectrum such as "filter_spct"
is returned.
Details
Method specializations to compute the quantiles at each wavelength
across a group of spectra stored in an object of one of the classes defined
in package 'photobiology'. Omission of NAs is done separately at each
wavelength. If na.rm = FALSE
and NA
values are present in any
of the spectra at a given wavelength, NA
is returned at this
wavelength (this differs from quantile()
but is
consistent with s_mean()
, s_median()
, etc.). Interpolation is
not applied, so all spectra in x
must share the same set of
wavelengths. An error is triggered if this condition is not fulfilled.
Note
Objects of classes raw_spct
and cps_spct
can contain data
from multiple scans in multiple variables or "columns". The parallel
summaries' methods accept as arguments objects of these classes only if
spectra contain data for a single spectrometer scan. In the case of
cps_spct
objects, a single column can also contain data from
multiple scans spliced into a single variable.
Deepest Curves
Parallel summaries differ fundamentally from the "deepest curves" obtained through functional data analysis (FDA) in that in functional data analysis one of the input curves is returned as the deepest one based on a decision criterion. In contrast the parallel summaries from package 'photobioloy' return one or more "fictional" curves different to any of those passed as inputs. This curve is constructed from independent summaries at each wavelength value.
See also
See quantile
for the quantile
method
used for the computations. Additional arguments can be passed by name to
be forwarded to quantile
.
Examples
s_quantile(sun_evening.mspct)
#> Object: source_mspct [3 x 1]
#> --- Member: p_0.25 ---
#> Object: source_spct [1,593 x 2]
#> Wavelength range 290-1000 nm, step 0.34-0.47 nm
#> Label: Quantile P=0.25 of 5 source_spct objects.
#> cosine.hour.9
#> Measured on 2023-06-12 18:38:00.379657 UTC
#> Measured on 2023-06-12 18:39:00.797266 UTC
#> Measured on 2023-06-12 18:40:00.714554 UTC
#> Measured on 2023-06-12 18:41:00.768459 UTC
#> Measured on 2023-06-12 18:42:00.769065 UTC
#> Measured at 60.227 N, 24.018 E; Viikki, Helsinki, FI
#> Variables:
#> w.length: Wavelength [nm]
#> s.e.irrad: Spectral energy irradiance [W m-2 nm-1]
#> --
#> # A tibble: 1,593 × 2
#> w.length s.e.irrad
#> <dbl> <dbl>
#> 1 290 0
#> 2 290. 0
#> 3 291. 0
#> 4 291. 0
#> 5 292. 0
#> 6 292. 0
#> 7 293. 0
#> 8 293. 0
#> 9 294. 0
#> 10 294. 0
#> # ℹ 1,583 more rows
#> --- Member: p_0.5 ---
#> Object: source_spct [1,593 x 2]
#> Wavelength range 290-1000 nm, step 0.34-0.47 nm
#> Label: Quantile P=0.5 of 5 source_spct objects.
#> cosine.hour.9
#> Measured on 2023-06-12 18:38:00.379657 UTC
#> Measured on 2023-06-12 18:39:00.797266 UTC
#> Measured on 2023-06-12 18:40:00.714554 UTC
#> Measured on 2023-06-12 18:41:00.768459 UTC
#> Measured on 2023-06-12 18:42:00.769065 UTC
#> Measured at 60.227 N, 24.018 E; Viikki, Helsinki, FI
#> Variables:
#> w.length: Wavelength [nm]
#> s.e.irrad: Spectral energy irradiance [W m-2 nm-1]
#> --
#> # A tibble: 1,593 × 2
#> w.length s.e.irrad
#> <dbl> <dbl>
#> 1 290 0
#> 2 290. 0
#> 3 291. 0
#> 4 291. 0
#> 5 292. 0
#> 6 292. 0
#> 7 293. 0
#> 8 293. 0
#> 9 294. 0
#> 10 294. 0
#> # ℹ 1,583 more rows
#> --- Member: p_0.75 ---
#> Object: source_spct [1,593 x 2]
#> Wavelength range 290-1000 nm, step 0.34-0.47 nm
#> Label: Quantile P=0.75 of 5 source_spct objects.
#> cosine.hour.9
#> Measured on 2023-06-12 18:38:00.379657 UTC
#> Measured on 2023-06-12 18:39:00.797266 UTC
#> Measured on 2023-06-12 18:40:00.714554 UTC
#> Measured on 2023-06-12 18:41:00.768459 UTC
#> Measured on 2023-06-12 18:42:00.769065 UTC
#> Measured at 60.227 N, 24.018 E; Viikki, Helsinki, FI
#> Variables:
#> w.length: Wavelength [nm]
#> s.e.irrad: Spectral energy irradiance [W m-2 nm-1]
#> --
#> # A tibble: 1,593 × 2
#> w.length s.e.irrad
#> <dbl> <dbl>
#> 1 290 0
#> 2 290. 0
#> 3 291. 0
#> 4 291. 0
#> 5 292. 0
#> 6 292. 0
#> 7 293. 0
#> 8 293. 0
#> 9 294. 0
#> 10 294. 0
#> # ℹ 1,583 more rows
#>
#> --- END ---