save
and load
, two general
ways to import and export data into hyperSpec
objects exist.Firstly, hyperSpec objects can be imported and exported as ASCII files.
Besides save
and load
, two general ways to import and
export data into hyperSpec
objects exist.
read.txt.long(file = stop("file is required"), cols = list(.wavelength =
expression(lambda/nm), spc = "I / a.u."), header = TRUE, ...)read.txt.wide(file = stop("file is required"), cols = list(spc = "I / a.u.",
.wavelength = expression(lambda/nm)), sep = "\t", row.names = NULL,
check.names = FALSE, ...)
write.txt.long(object, file = "", order = c(".rownames", ".wavelength"),
na.last = TRUE, decreasing = FALSE, quote = FALSE, sep = "\t",
row.names = FALSE, cols = NULL, col.names = TRUE, col.labels = FALSE,
append = FALSE, ...)
write.txt.wide(object, file = "", cols = NULL, quote = FALSE,
sep = "\t", row.names = FALSE, col.names = TRUE, header.lines = 1,
col.labels = if (header.lines == 1) FALSE else TRUE, append = FALSE, ...)
filename or connection
the column names specifying the column order.
For data import, a list with elements colname = label
; for export a
character vector with the colnames. Use wavelength
to specify the
wavelengths.
the file has (shall have) a header line
arguments handed to read.table
and
write.table
, respectively.
handed to read.table
. Make sure this is FALSE
, if
the column names of the spectra are the wavelength values.
the hyperSpec
object
which columns should be order
ed?
order
is used as index vector into a data.frame
with
columns given by cols
.
handed to order
by
write.txt.long
.
logical vector giving the sort order
have their usual meaning (see
read.table
and write.table
),
but different default values.
For file import, row.names
should usually be NULL
so that the
first column becomes a extra data column (as opposed to row names of the extra data).
Should the column labels be used rather than the colnames?
Should the output be appended to an existing file?
Toggle one or two line header (wavelengths in the
second header line) for write.txt.wide
A second option is using the package R.matlab
which
provides the functions readMat
and
writeMat
.
hyperSpec comes with a number of pre-defined functions to import
manufacturer specific file formats. For details, see vignette
("file-io")
.
read.spc
imports Thermo Galactic's .spc file
format, and ENVI files may be read using
read.ENVI
.
These functions are very flexible and provide lots of arguments.
If you use them to read or write manufacturer specific ASCII formats,
please consider writing a wrapper function and contributing this function
to hyperSpec. An example is in the “flu” vignette (see
vignette ("flu", package = "hyperSpec"
).
Note that R accepts many packed formats for ASCII files, see
connections
. For .zip files, see
unzip
.
For further information, see the examples below and the documentation of
R.matlab
.
Firstly, hyperSpec objects can be imported and exported as ASCII files.
A second option is using the package R.matlab
which provides the functions readMat
and
writeMat
.
hyperSpec comes with a number of pre-defined functions to import
manufacturer specific file formats. For details, see vignette
("fileio")
.
read.spc
imports Thermo Galactic's .spc file
format, and ENVI files may be read using
read.ENVI
.
These functions are very flexible and provide lots of arguments.
If you use them to read or write manufacturer specific ASCII formats,
please consider writing a wrapper function and contributing this
function to hyperSpec. An example is in the “flu” vignette
(see vignette ("flu", package = "hyperSpec"
).
Note that R accepts many packed formats for ASCII files, see
connections
. For .zip files, see unzip
.
For further information, see the examples below, vignette ("fileio")
and the documentation
of R.matlab
.
R.matlab
for .mat files
read.ENVI
for ENVI data
read.spc
for .spc files
Manufacturer specific file formats: scan.txt.Renishaw
vignette ("fileio")
and http://hyperspec.r-forge.r-project.org/blob/fileio.pdf,
respectively
# NOT RUN {
# }
# NOT RUN {
vignette ("file-io")
# }
# NOT RUN {
## export & import matlab files
if (require (R.matlab)){
# export to matlab file
writeMat ("test.mat", x = flu[[]], wavelength = flu@wavelength,
label = lapply (flu@label, as.character))
# reading a matlab file
data <- readMat ("test.mat")
print (data)
mat <- new ("hyperSpec", spc = data$x,
wavelength = as.numeric(data$wavelength),
label = data$label[,,1])
}
## ascii export & import
write.txt.long (flu, file = "flu.txt", cols = c(".wavelength", "spc", "c"),
order = c("c", ".wavelength"),
decreasing = c(FALSE, TRUE))
read.txt.long (file = "flu.txt", cols = list (.wavelength = expression (lambda / nm),
spc= "I / a.u", c = expression ("/" (c, (mg/l)))))
write.txt.wide (flu, file = "flu.txt", cols = c("c", "spc"),
col.labels = TRUE, header.lines = 2, row.names = TRUE)
write.txt.wide (flu, file = "flu.txt", col.labels = FALSE, row.names = FALSE)
read.txt.wide (file = "flu.txt",
cols = list (c=expression ("/"("c", "mg/l")), spc="I / a.u", .wavelength = "lambda / nm"),
header = TRUE)
# }
Run the code above in your browser using DataLab