[,hyperSpec-method {hyperSpec} | R Documentation |
Extract and Replace parts of hyperSpec objects
Description
These Methods allow to extract and replace parts of the hyperSpec
object.
Usage
## S4 method for signature 'hyperSpec'
x[i, j, l, ..., wl.index = FALSE, drop = FALSE]
## S4 method for signature 'hyperSpec'
x[[i, j, l, ..., wl.index = FALSE, drop = FALSE]]
## S4 method for signature 'hyperSpec'
x$name
## S4 replacement method for signature 'hyperSpec'
x[i, j, ...] <- value
## S4 replacement method for signature 'hyperSpec'
x[[i, j, l, wl.index = FALSE, ...]] <- value
## S4 replacement method for signature 'hyperSpec'
x$name <- value
Arguments
x |
a |
i |
row index: selects spectra
|
j |
selecting columns of |
l |
selecting columns of the spectra matrix. If |
... |
ignored |
wl.index |
If |
drop |
For |
name |
name of the data column to extract. |
value |
the replacement value |
Details
They work with respect to the spectra (rows of x
), the columns of the data matrix, and the
wavelengths (columns of the spectra matrix).
Thus, they can be used for selecting/deleting spectra, cutting the spectral range, and extracting or setting the data belonging to the spectra.
Convenient shortcuts for access of the spectra matrix and the data.frame
in slot
data
are provided.
Extracting: [
, [[
, and $
.
The version with single square brackets ([
) returns the resulting hyperSpec
object.
[[
yields data.frame
of slot @data
of that corresponding hyperSpec
object returned with the same arguments by [
if columns were selected (i.e. j
is
given), otherwise the spectra matrix
x@data$spc
.
$
returns the selected column of the data.frame
in slot @data
.
Shortcuts. Three shortcuts to conveniently extract much needed parts of the object are defined:
x[[]]
returns the spectra matrix.
x$.
returns the complete slot @data
, including the spectra matrix in column
$spc
, as a data.frame
.
x$..
returns a data.frame
like x$.
but without the spectra matrix.
Replacing: [<-
, [[<-
, and $<-
.
## S4 method for signature 'hyperSpec': x [i, j, l, \dots] <- value ## S4 method for signature 'hyperSpec': x [[i, j, l, wl.index = FALSE, \dots]] <- value ## S4 method for signature 'hyperSpec': x$name <- value
value
gives the values to be assigned.
For $
, this can also be a list of the form list (value =
value, label = label)
, with label
containing the label for data
column name
.
[[<-
replaces parts of the spectra matrix.
[<-
replaces parts of the data.frame
in slot x@data
.
$<-
replaces a column of the data.frame
in slot
x@data
. The value
may be a list with two elements,
value
and label
. In this case the label of the data column
is changed accordingly.
$..<-
is again an abbreviation for the data.frame without the
spectra matrix.
Value
For [
, [<-
, [[<-
, and $<-
a hyperSpec
object,
for [[
a matrix or data.frame
, and
for $
the column of the data.frame
@data
.
x[[]]
returns the complete spectra matrix.
x$.
returns the complete slot @data
,
x$..
returns the data.frame
in @data
but without the column
@data$spc
containing the spectra matrix.
See Also
wl2i
on conversion of wavelength ranges to indices.
Examples
## index into the rows (spectra) -------------------------------------
## make some "spectra"
## numeric index
plot (flu, "spc", lines.args = list (lty = 2))
plot (flu[1:3], "spc", add = TRUE, col = "red") # select spectra
plot (flu[-(1:3)], "spc", add = TRUE, col = "blue") # delete spectra
## logic index
plot (flu, "spc", lines.args = list (lty = 2))
index <- rnorm (6) > 0
index
plot (flu[index], "spc", add = TRUE, col = "red") # select spectra
plot (flu[!index], "spc", add = TRUE, col = "blue") # select spectra
## index into the data columns ---------------------------------------
range (chondro[[,"x"]])
colnames (chondro[[,1]])
dim (chondro[[,c(TRUE, FALSE, FALSE)]])
chondro$x
## the shortcut functions --------------------------------------------
## extract the spectra matrix
flu[[]]
## indexing via logical matrix
summary (flu [[flu < 125]])
## indexing the spectra matrix with index matrix n by 2
ind <- matrix (c (1, 2, 4, 406, 405.5, 409), ncol = 2)
ind
flu [[ind]]
ind <- matrix (c (1, 2, 4, 4:6), ncol = 2)
ind
flu [[ind, wl.index = TRUE]]
pca <- prcomp (flu[[]])
## result is data.frame, if j is given:
result <- flu [[, 1:2, 405 ~ 410]]
result
class (result)
colnames (result)
## extract the data.frame including the spectra matrix
flu$.
dim(flu$.)
colnames (flu$.)
flu$.$spc
calibration <- lm (spc ~ c, data = flu[,,450]$.)
calibration
flu$..
colnames (flu$..)
## replacement functions
spc <- flu
spc$.
spc[, "c"] <- 16 : 11
## be careful:
plot (spc)
spc [] <- 6 : 1
spc$..
plot (spc)
spc <- flu [,, 405 ~ 410]
spc [[]]
spc [[3]] <- -spc[[3]]
spc [[]]
spc [[,,405 : 410]] <- -spc[[,,405 : 410]]
spc [[]]
spc [[,,405 ~ 410]] <- -spc[[,,405 ~ 410]]
## indexing with logical matrix
spc <- flu [,, min ~ 410]
spc < 125
spc [[spc < 125]] <- NA
spc [[]]
## indexing with n by 2 matrix
ind <- matrix (c (1, 2, 4, 406, 405.5, 409), ncol = 2)
ind
spc [[ind]] <- 3
spc [[]]
ind <- matrix (c (1, 2, 4, 4:6), ncol = 2)
ind
spc [[ind, wl.index = TRUE]] <- 9999
spc [[]]
spc$.
spc$z <- 1 : 6
spc
spc$z <- list (1 : 6, "z / a.u.")