Learn R Programming

flint (version 0.1.0)

c.flint: Concatenate Vectors

Description

Function c is primitive and internally generic but it dispatches only on its first argument. A corollary is that c(x, ...) does not dispatch the S4 method with signature x="flint" if x is not a flint vector, even if a flint vector appears later in the call as a component of ....

Functions cbind and rbind are internally generic and dispatch on all components of ..., creating the possibility of dispatch ambiguities; see cbind2 and rbind2.

S3 methods c.flint, cbind.flint and rbind.flint are registered and exported to enable users to bypass internal dispatch.

Usage

# S3 method for flint
c(..., recursive = FALSE, use.names = TRUE)
# S3 method for flint
cbind(..., deparse.level = 1)
# S3 method for flint
rbind(..., deparse.level = 1)

Value

If none of the arguments is a flint vector, then the internal default methods are dispatched.

If at least one argument is a flint vector, then the return value is a flint vector, unless recursive = FALSE and at least one argument is a pairlist, name, call, list, or expression, in which case the return value is a list or expression.

If the return value is a flint vector, then its class is the most specific subclass of flint whose range contains the ranges of the classes of the arguments.

Arguments

...

objects inheriting from virtual class flint or whose type is one of the vector types or one of the non-vector types NULL, pairlist, symbol, and language.

recursive

a logical indicating if pairlists, lists, and expressions should be handled recursively. If TRUE, then the function behaves as if such arguments were replaced by their terminal nodes.

use.names

a logical indicating if names should be preserved.

deparse.level

an integer (0, 1, or 2) indicating how names are chosen for rows or columns derived from untagged, non-matrix arguments. 0 is to use empty names, 2 is to deparse unevaluated arguments, and 1 (the default value) is to deparse unevaluated arguments only if they are symbols and otherwise use empty names.

Examples

Run this code
x <- slong(2:5)
c(x, 6L)
c(1L, x) # bad
c.flint(x, 6L)
c.flint(1L, x)

Run the code above in your browser using DataLab