bind: Binding hyperSpec Objects

bindR Documentation

Binding hyperSpec Objects

Description

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.

Usage

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

## S3 method for class 'hyperSpec'
cbind(...)

## S3 method for class 'hyperSpec'
rbind(...)

## S4 method for signature 'hyperSpec,hyperSpec'
cbind2(x, y)

## S4 method for signature 'hyperSpec,missing'
cbind2(x, y)

## S4 method for signature 'hyperSpec,hyperSpec'
rbind2(x, y, wl.tolerance = hy.getOption("wl.tolerance"))

## S4 method for signature '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

Details

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.

Value

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

Note

You might have to make sure that the objects either all have or all do not have rownames and/or colnames.

Author(s)

C. Beleites

See Also

rbind2, cbind2 rbind, cbind

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

Examples


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)

hyperSpec documentation built on May 29, 2024, 7:28 a.m.