Learn R Programming

ChemoSpec (version 4.2.8)

files2SpectraObject: Merge Files in a Directory into a Spectra Object

Description

This function will read all files of a given type in a directory, and use the file names to construct group membership and assign colors and symbols. All the data is placed into an object of S3 class Spectra. This is the only way to create a Spectra object automatically.

Usage

files2SpectraObject(gr.crit = NULL, gr.cols = c("auto"),
freq.unit = "no frequency unit provided",
int.unit = "no intensity unit provided",
descrip = "no description provided",
format = "csv",
out.file = "mydata", debug = FALSE, ...)

Arguments

Value

A object of class Spectra. An unnamed object of S3 class Spectra is also written to out.file. To read it back into the workspace, use new.name <- loadObject(out.file) (loadObject is package R.utils).

Rdversion

1.1

Warning

Files whose names are not matched using gr.crit are still incorporated into the Spectra object, but they are not assigned a group or color and therefore don't plot, but they do take up space in a plot!

Details

The linking of groups with colors is handled by groupNcolor.

The matching of gr.crit against the sample file names is done one at a time, in order. This means that the entries in gr.crit must be mutually exclusive. For example, if you have files with names like "Control_1" and "Sample_1" and use gr.crit = c("Control", "Sample") groups will be assigned as you would expect. But, if you have file names like "Control_1_Shade" and "Sample_1_Sun" you can't use gr.crit = c("Control", "Sample", "Sun", "Shade") because each criteria is grepped in order, and the "Sun/Shade" phrases, being last, will form the basis for your groups. Because this is a grep process, you can get around this by using regular expressions in your gr.crit argument to specify the desired groups in a mutually exclusive manner. In this second example, you could use gr.crit = c("Control(.*)Sun", "Control(.*)Shade", "Sample(.*)Sun", "Sample(.*)Shade") to have your groups assigned based upon both phrases in the file names.

files2SpectraObject acts on the files in the current working directory. If format = "csv" these should be .csv files with the first column containing the frequency values and the second column containing the intensity values. The columns should be unlabeled (i.e. no header row). The frequency column is assumed to be the same in all .csv files. If format = "dx", then the corresponding file type will be processed (consider setting debug = TRUE for this format). See readJDX for limitations (there are many options for JCAMP, and most are untested).

There should be no other files of the given format (extension) in the directory except those containing the data to be processed by files2SpectraObject, as all files with that format in the directory will be processed.

References

https://github.com/bryanhanson/ChemoSpec