mutate: Mutate a Spectra* object by transforming the spectra values,...

mutateR Documentation

Mutate a Spectra* object by transforming the spectra values, and/or adding new or replacing existing attributes.


This function is very similar to transform but it executes the transformations iteratively so that later transformations can use the columns created by earlier transformations. Like transform, unnamed components are silently dropped.

Either the spectra, and/or the attributes (if the .data inherits from the SpectraDataFrame class) can be affected:

  • To affect the spectra, one should use the nir placeholder, eg nir = log(1/nir)

  • To affect the attributes of the object, the definitions of new columns are simply given using attributes names, newAttribute = 1/sqrt(attribute)

  • Both spectra and attrbutes can be transformed in one command.


## S4 method for signature 'Spectra'
mutate(.data, ...)



an object inheriting from the Spectra class


named parameters giving definitions of new columns


Pierre Roudier, from code from Hadley Wickham


Hadley Wickham (2011). The Split-Apply-Combine Strategy for Data Analysis. Journal of Statistical Software, 40(1), 1-29. URL


# Loading example data
spectra(australia) <- sr_no ~ ... ~ 350:2500

# Modifying spectra
m <- mutate(australia, nir = log1p(1/nir))

# Modifying and creating attributes
m <- mutate(
  sqrt_carbon = sqrt(carbon), 
  foo = clay + ph, 
  nir = log1p(1/nir)

spectacles documentation built on July 10, 2023, 1:59 a.m.