Learn R Programming

hyperSpec (version 0.98-20161118)

bind: Binding hyperSpec Objects Two S3 functions cbind.hyperSpec and rbind.hyperSpec act as an interfaces to cbind2 and rbind2 because neither rBind and cBind nor S4 versions of cbind and rbind do work at the moment.

Description

While it is now possible to do S4 despatch on …{}, defining such S4 methods for cbind and rbind breaks the binding of Matrix objects. Therefore, two S3 methods rbind.hyperSpec and cbind.hyperSpec are defined.

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.

rbind2 binds two hyperSpec objects by row. They need to have the same columns.

Usage

bind(direction = stop("direction ('c' or 'r') required"), ...,
  wl.tolerance = hy.getOption("wl.tolerance"))

cbind.hyperSpec(...)

rbind.hyperSpec(...)

# 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)

Arguments

direction

"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.

wl.tolerance

rbind and rbind2 check for equal wavelengths with this tolerance.

x, y

hyperSpec objects

Value

a hyperSpec object, possibly with different row order (for bind ("c", …{}) and cbind2).

Details

bind does the common work for both column- and row-wise binding.

See Also

rBind, cBind rbind2, cbind2 rbind, cbind

merge and collapse for combining objects that do not share spectra or wavelengths, respectively.

Examples

Run this code
# NOT RUN {
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


# }

Run the code above in your browser using DataLab