## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.align = "center",
  fig.width = 6.5,
  fig.height = 3.5
)

## ----setup, include=FALSE-----------------------------------------------------
library(kableExtra)

## ----load-package-ir----------------------------------------------------------
library(ir)

## ----import-csv-table-format, echo=FALSE--------------------------------------
read.csv("../inst/extdata/klh_hodgkins_mir.csv") |>
  dplyr::select(1:5) |>
  dplyr::slice(1:6) |>
  kableExtra::kable()

## ----import-csv-1-------------------------------------------------------------
d_csv <- 
  ir_import_csv(
    "../inst/extdata/klh_hodgkins_mir.csv", 
    sample_id = "from_colnames"
  )

## -----------------------------------------------------------------------------
library(dplyr)
library(stringr)

# import the metadata
d_csv_metadata <- 
  read.csv(
    "./../inst/extdata/klh_hodgkins_reference.csv",
    header = TRUE,
    as.is = TRUE
  ) |>
  dplyr::rename(
    sample_id = "Sample.Name",
    sample_type = "Category",
    comment = "Description",
    holocellulose = "X..Cellulose...Hemicellulose..measured.",
    klason_lignin = "X..Klason.lignin..measured." 
  ) |>
  # make the sample_id values fit to those in `d_csv$sample_id` to make combining easier
  dplyr::mutate(
    sample_id =
      sample_id |>
      stringr::str_replace_all(pattern = "( |-)", replacement = "\\.")
  )

d_csv <- 
  d_csv |>
  dplyr::full_join(d_csv_metadata, by = "sample_id")

## ----import-spc-1-------------------------------------------------------------
d_spc <- ir_import_spc("../inst/extdata/1.spc", log.txt = FALSE)

## ----export-csv-1-------------------------------------------------------------
# export only the spectra
ir_sample_data |>
  ir_export_prepare(what = "spectra") |>
  write.csv(tempfile("ir_sample_data_spectra", fileext = "csv"), row.names = FALSE)

## ----export-csv-2-------------------------------------------------------------
# export only the metadata
ir_sample_data |>
  ir_drop_spectra() |>
  write.csv(tempfile("ir_sample_data_metadata", fileext = "csv"), row.names = FALSE)

## ----plot-1-------------------------------------------------------------------
plot(d_csv)

## -----------------------------------------------------------------------------
library(ggplot2)

plot(d_csv) + 
  geom_path(aes(color = sample_type))

## -----------------------------------------------------------------------------
plot(d_csv) + 
  geom_path(aes(color = sample_type)) +
  labs(x = expression("Wavenumber ["*cm^{-1}*"]"), y = "Absorbance") +
  guides(color = guide_legend(title = "Sample type")) +
  theme_classic() +
  theme(legend.position = "bottom")

## ----preprocessing-before-1---------------------------------------------------
plot(d_spc)

## ----preprocessing-bc-1-------------------------------------------------------
d_spc |>
  ir_bc(method = "rubberband") |>
  plot()

## ----preprocessing-normalization-1--------------------------------------------
d_spc |>
  ir_normalize(method = "area") |>
  plot()

## ----preprocessing-normalization-2--------------------------------------------
d_spc |>
  ir_normalize(method = 1090) |>
  plot() +
  geom_hline(yintercept = 1, linetype = 2) +
  geom_vline(xintercept = 1090, linetype = 2)

## -----------------------------------------------------------------------------
d_spc |>
  ir_smooth(method = "sg", p = 3, n = 91, m = 0) |>
  plot()

## -----------------------------------------------------------------------------
d_spc |>
  ir_smooth(method = "sg", p = 3, n = 9, m = 1) |>
  plot()

## -----------------------------------------------------------------------------
d_spc |>
  ir_clip(range = data.frame(start = 1000, end = 3000)) |>
  plot()

## -----------------------------------------------------------------------------
d_spc |>
  ir_interpolate(dw = 1) |>
  plot()

## -----------------------------------------------------------------------------
d_spc %>%
  ir_interpolate(dw = 1) |>
  ir_normalize(method = 1090) |>
  plot() +
  geom_hline(yintercept = 1, linetype = 2) +
  geom_vline(xintercept = 1090, linetype = 2)

## -----------------------------------------------------------------------------
d_spc |>
  ir_interpolate_region(range = data.frame(start = 1000, end = 3000)) |>
  plot()

## -----------------------------------------------------------------------------
d_spc |>
  ir_bin(width = 30) |>
  plot()

## -----------------------------------------------------------------------------
d_csv |>
  ir_scale(center = TRUE, scale = FALSE) |>
  plot()

## -----------------------------------------------------------------------------
d_spc |>
  ir_interpolate(dw = 1) |>
  ir_clip(range = data.frame(start = 700, end = 3900)) |>
  ir_bc(method = "rubberband") |>
  ir_normalise(method = "area") |>
  ir_bin(width = 10) |>
  plot()

## ----echo=FALSE---------------------------------------------------------------
sessionInfo()