The spectacles package is making it easy (or at least easier!) to handle spectroscopy data. It provides the user with dedicated classes (namely Spectra and SpectraDataFrame), so that most of the useful information about the spectral dataset is available in one R object:
The stable version of spectacles is on CRAN (:tada:):
install.packages('spectacles')
You can also install the development version using the devtools package:
# Install devtools if you don't have it on your machine
# install.packages('devtools')
devtools::install_github("pierreroudier/spectacles")
It also provides easy ways to plot a collection of spectra:
ggplot2 or latticeIt also gives overloads to the most common operators such as $, [, or [[, so that any user familiar with data.frame object would fell right at home.
The philosophy of the package is really just to make it easier to work with quite complex data. There are a lot of tools already existing in R to do spectral preprocessing (signal, etc.). A few additional tools have been added in spectacles, such as the ASD splice correction.
The idea is for the package to work quite well with the pipe (%>%) operator from the magrittr package, to create chains of pre-processing operators. The function apply_spectra makes it easy to work with any function whose input is either a numeric vector or a matrix:
# Example of splice correction, followed by
# a first derivative, followed by a SNV
my_spectra %>%
splice %>%
apply_spectra(diff, 1) %>%
apply_spectra(snv)
# Another example using prospectr
my_spectra %>%
splice %>%
apply_spectra(prospectr::continuumRemoval, wav = wl(.)) %>%
plot
Again, lots of existing methods available, so spectacles is not re-implementing any of these. There's various ways to use spectacles with the different methods available, but my favoured option is to use it in conjonction with the caret package, which gives a unique API to 160+ models in R:
fit <- train(
y = s$carbon,
x = spectra(s),
method = "pls"
)
spectroSummary(fit)
inspectr?!?Yes, I once had a package called inspectr on Github, and spectacles is very much the continuation of inspectr. The only reason why inspectr changed name is that someone pushed a package called inspectr on CRAN (despite inspectr being quite visible on Github.... :-/). So, lesson learnt this time!
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.