cbind2                package:methods                R Documentation

Combine two Objects by Columns or Rows

Description:

     Combine two matrix-like R objects by columns ('cbind2') or rows
     ('rbind2'). These are (S4) generic functions with default methods.

Usage:

     cbind2(x, y)
     rbind2(x, y)

Arguments:

       x: any R object, typically matrix-like.

       y: any R object, typically similar to 'x', or missing
          completely.

Details:

     The main use of 'cbind2' ('rbind2') is to be called by 'cbind()' 
     ('rbind()') *if* these are activated.  This allows 'cbind'
     ('rbind') to work for formally classed (aka 'S4') objects by
     providing S4 methods for these objects.  Currently, a call
      'methods:::bind_activation(TRUE)'
      is needed to install a 'cbind2'-calling version of 'cbind' (into
     the 'base' name space) and the same for 'rbind'.
      'methods:::bind_activation(FALSE)' reverts to the previous
     internal version of 'cbind' which does not build on 'cbind2', see
     the examples.

Value:

     A matrix (or matrix like object) combining the columns (or rows)
     of 'x' and 'y'.

Methods:

     x = "ANY", y = "ANY" the default method using R's internal code.

     x = "ANY", y = "missing" the default method for one argument using
          R's internal code.

See Also:

     'cbind', 'rbind'.

Examples:

     cbind2(1:3, 4)
     m <- matrix(3:8, 2,3, dimnames=list(c("a","b"), LETTERS[1:3]))
     cbind2(1:2, m) # keeps dimnames from m

     ### Note: Use the following activation if you want cbind() to work
     ### ----  on S4 objects -- be careful otherwise!

     methods:::bind_activation(on = TRUE)
     trace("cbind2")
     cbind(a=1:3)# no call to cbind2()
     cbind(a=1:3, four=4, 7:9)# calling cbind2() twice
     untrace("cbind2")



     ## The following fails currently,
     ## since cbind() works recursively from the tail:
     try( cbind(m, a=1, b=3) )

     ## turn off the `special cbind()' :
     methods:::bind_activation(FALSE)

