Skip to contents

step_measure_align_ptw() creates a specification of a recipe step that aligns spectra using Parametric Time Warping (PTW). This method uses polynomial warping functions to correct for shifts and distortions.

Usage

step_measure_align_ptw(
  recipe,
  measures = NULL,
  reference = c("mean", "median", "first"),
  role = NA,
  trained = FALSE,
  skip = FALSE,
  id = recipes::rand_id("measure_align_ptw")
)

Arguments

recipe

A recipe object.

measures

An optional character vector of measure column names.

reference

How to determine the reference: "mean" (default, mean spectrum from training), "median" (median spectrum from training), or "first" (first sample).

role

Not used.

trained

Logical indicating if the step has been trained.

skip

Logical. Should the step be skipped when baking?

id

Unique step identifier.

Value

An updated recipe with the new step added.

Details

Parametric Time Warping optimizes polynomial warping coefficients to maximize the correlation between each sample and the reference spectrum. This corrects for smooth, continuous distortions in the x-axis.

Requires the ptw package to be installed.

References

Eilers, P.H.C. (2004). Parametric Time Warping. Analytical Chemistry, 76(2), 404-411.

Examples

library(recipes)

rec <- recipe(water + fat + protein ~ ., data = meats_long) |>
  update_role(id, new_role = "id") |>
  step_measure_input_long(transmittance, location = vars(channel)) |>
  step_measure_align_ptw() |>
  prep()

bake(rec, new_data = NULL)
#> # A tibble: 215 × 5
#>       id water   fat protein .measures
#>    <int> <dbl> <dbl>   <dbl>    <meas>
#>  1     1  60.5  22.5    16.7 [100 × 2]
#>  2     2  46    40.1    13.5 [100 × 2]
#>  3     3  71     8.4    20.5 [100 × 2]
#>  4     4  72.8   5.9    20.7 [100 × 2]
#>  5     5  58.3  25.5    15.5 [100 × 2]
#>  6     6  44    42.7    13.7 [100 × 2]
#>  7     7  44    42.7    13.7 [100 × 2]
#>  8     8  69.3  10.6    19.3 [100 × 2]
#>  9     9  61.4  19.9    17.7 [100 × 2]
#> 10    10  61.4  19.9    17.7 [100 × 2]
#> # ℹ 205 more rows