Skip to contents

step_measure_baseline_rolling() creates a specification of a recipe step that applies rolling ball baseline correction. This morphological approach "rolls" a ball of specified radius along the underside of the spectrum.

Usage

step_measure_baseline_rolling(
  recipe,
  measures = NULL,
  window_size = 100,
  smoothing = 50,
  role = NA,
  trained = FALSE,
  skip = FALSE,
  id = recipes::rand_id("measure_baseline_rolling")
)

Arguments

recipe

A recipe object.

measures

An optional character vector of measure column names.

window_size

The diameter of the rolling ball in number of points. Default is 100.

smoothing

Additional smoothing window applied to the baseline. Default is 50.

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

The rolling ball algorithm simulates rolling a ball of specified radius along the underside of the spectrum. Points where the ball touches become the baseline. This is effective for:

  • Chromatographic baselines

  • Spectra with gradual drift

  • Data where peaks are narrower than baseline features

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_baseline_rolling(window_size = 50) |>
  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