--- title: "baseline" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{baseline} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` Let's use the [`meats`](https://modeldata.tidymodels.org/reference/meats.html) data from [`{modeldata}`](https://modeldata.tidymodels.org/) to demonstrate baseline correction. ```{r setup, message = FALSE} library(tidyverse) library(tidymodels) library(measure) tidymodels_prefer() theme_set(theme_light()) ``` ## Data Cleanup Before we can perform baseline correction, we need to reshape the data. It is in a wide format where the columns represent the wavelength and the value is transmittance. The `step_baseline()` function operates on long format data. We can reshape this data with `{tidyr}`. ```{r} meats2 <- meats %>% rowid_to_column(var = "id") %>% pivot_longer( cols = starts_with("x_"), names_to = "channel", values_to = "transmittance" ) %>% mutate(channel = str_extract(channel, "[:digit:]+") %>% as.integer()) ``` ```{r} meats2 %>% ggplot(aes(x = channel, y = transmittance, group = id)) + geom_line(alpha = 0.5) + theme_light() ``` ```{r} meats2 %>% group_by(id) %>% subtract_rf_baseline(yvar = transmittance, span = 0.8) %>% ggplot(aes(x = channel, color = water, group = id)) + geom_line(aes(y = transmittance), alpha = 0.5) + scale_color_viridis_c() + ggtitle("") ```