R: Create New Groups from an Existing Spectra Object

splitSpectraGroups {ChemoSpec} | R Documentation

## Create New Groups from an Existing Spectra Object

### Description

This function takes an existing `Spectra` object and uses your instructions to split the existing `spectra$groups` into new groups. The new groups are added to the existing `Spectra` object (a list) as new elements. This allows one to use different combinations of factors than were originally encoded in the `Spectra` object. The option also exists to replace the color scheme with one which corresponds to the new factors.

### Usage

    splitSpectraGroups(spectra, inst = NULL, rep.cols = NULL, ...)

### Arguments

`spectra` | An object of S3 class `Spectra`.
`inst` | A list giving the name of the new element to be created from a set of target strings given in a character vector. See the example for the syntax.
`rep.cols` | Optional. A vector giving new colors which correspond to the levels of `inst`. Only possible if `inst` has only one element, as the possible combinations of levels and colors may get complicated.
`...` | Additional arguments to be passed downstream. Currently not used.

### Details

The items in the character vector are grepped among the existing `spectra$groups` entries; when found, they are placed in a new element of `Spectra`. In the example, all `spectra$groups` entries containing "G" are coded as "G" in a new element called `spectra$env`, and any entries containing "T" are handled likewise. This amounts to a sort of recoding of factors (the example demonstrates this). Every entry in `spectra$groups` should be matched by one of the entries in the character vector. If not, you will get <NA> entries. Also, if the targets in the character vector are not unique, your results will reflect the order of the levels. Since this is a grep process, you can pass any valid grep string as the target.

If `rep.cols` is provided, these colors are mapped one for one onto the levels of the the first element of `inst`. This provides a different means of changing the sample color encoding than `conColScheme`.

### Value

An object of S3 class `Spectra`, modified to have additional elements as specified by `inst`.

### Author(s)

Bryan A. Hanson, DePauw University.

### References

https://github.com/bryanhanson/ChemoSpec

### See Also

`conColScheme`.

### Examples

    data(metMUD2)
    levels(metMUD2$groups) # original factor encoding

    # Split those original levels into 2 new ones (re-code them)
    new.grps <- list(geneBb = c("B", "b"), geneCc = c("C", "c"))
    res <- splitSpectraGroups(metMUD2, new.grps)
    str(res) # note two new elements, "geneBb" and "geneCc"
    sumSpectra(res) # reports on extra elements

    # Note that if you want to use a newly created group in
    # plotScores and other functions to drive the color scheme
    # and labeling, you'll have to update the groups element:
    res$groups <- as.factor(paste(res$geneBb, res$geneCc, sep = ""))

[Package ChemoSpec version 4.4.97 Index]