
Last chance! 50% off unlimited learning
Sale ends in
The former difficulties with binding S4 objects
are resolved since R version 3.2.0 and cbind
and rbind
now work as intended and
expected for hyperSpec objects.
cbind2
binds the spectral matrices of two hyperSpec
objects by column. All columns
besides spc
with the same name in x@data
and y@data
must have the same
elements. Rows are ordered before checking.
bind(
direction = stop("direction ('c' or 'r') required"),
...,
wl.tolerance = hy.getOption("wl.tolerance")
)# S3 method for hyperSpec
cbind(...)
# S3 method for hyperSpec
rbind(...)
# S4 method for hyperSpec,hyperSpec
cbind2(x, y)
# S4 method for hyperSpec,missing
cbind2(x, y)
# S4 method for hyperSpec,hyperSpec
rbind2(x, y, wl.tolerance = hy.getOption("wl.tolerance"))
# S4 method for hyperSpec,missing
rbind2(x, y, wl.tolerance)
a hyperSpec
object, possibly with different row order (for
bind ("c", ...{})
and cbind2
).
"r" or "c" to bind rows or columns
The hyperSpec
objects to be combined.
Alternatively, one list of hyperSpec
objects can be given to
bind
.
rbind
and rbind2
check for equal wavelengths
with this tolerance.
hyperSpec
objects
C. Beleites
Therefore, calling rbind.hyperSpec
and
cbind.hyperSpec
is now depecated: cbind
and rbind
should now be called
directly.
However, in consequence it is no longer possible to call cbind
or rbind
with a
list of hyperSpec objects. In that case, use bind
or do.call
(see example).
bind
does the common work for both column- and row-wise binding.
chondro
bind ("r", chondro, chondro)
rbind (chondro, chondro)
cbind (chondro, chondro)
bind ("r", list (chondro, chondro, chondro))
x <- chondro[,, 600 : 605]
x$a <- 1
x@data <- x@data[, sample (ncol (x), ncol (x))] # reorder columns
y <- chondro [nrow (chondro) : 1,, 1730 : 1750] # reorder rows
y$b <- 2
cbind2 (x, y) # works
y$y[3] <- 5
try (cbind2 (x, y)) # error
# list of hyperSpec objects
lhy <- list (flu, flu)
do.call ("rbind", lhy)
bind ("r", lhy)
Run the code above in your browser using DataLab