"Spectra"
. This is the only way to create a "Spectra"
object automatically.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", alignTMS = FALSE,
out.file = "mydata", debug = FALSE, ...)
gr.crit
gr.crit
. In the latter case, colors will be assigned one for one, so the first element ocsv
for US-style csv files. Alternatively, you can specify csv2
for EU-style csv files, dx
for JCAMP-DX files, or Btxt
for format = "Btxt"
only). See Details.save
function. The completed object of S3 class "Spectra"
will be written to this file.TRUE
for troubleshooting when using format = "Btxt" or "dx"
.span
, sn
, and thres
to findTMS
and related functions).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)
, found in package R.utils
."Spectra"
object, but they are not assigned a group or color and therefore don't plot, though they do take up space in a plot!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. The frequency column is assumed to be the same in all .csv files. If format = "dx"
or format = "Btxt"
, then the corresponding file type will be processed (consider setting debug = TRUE
for these formats). See readJDX
and readBrukerTxt
for limitations (there are many options with these formats, especially JCAMP, and most are untested).
If format = "Btxt"
and alignTMS = TRUE
, the function will try to find the TMS peak and align the spectra on it. Also, spectra of different chemical shift ranges are allowed for this format. In this case, the spectra will first be aligned on TMS and then the set of spectra will be trimmed so that there are no NA's in Spectra$data
. Warnings are given as this is done. This is experimental so please check your results carefully! Please feel free to submit data sets that give trouble and I can see if I can improve the processing.
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.