| vector {base} | R Documentation |
vector produces a vector of the given length and mode.
as.vector, a generic, attempts to coerce its argument into a
vector of mode mode (the default is to coerce to whichever
vector mode is most convenient): if the result is atomic all
attributes are removed.
is.vector returns TRUE if x is a vector of the
specified mode having no attributes other than names. It returns
FALSE otherwise.
vector(mode = "logical", length = 0) as.vector(x, mode = "any") is.vector(x, mode = "any")
mode |
A character string giving an atomic mode or
|
length |
A non-negative integer specifying the desired length. Double values will be coerced to integer: supplying an argument of length other than one is an error. |
x |
An object. |
The atomic modes are "logical", "integer",
"numeric" (synonym "double"), "complex",
"character" and "raw".
If mode = "any", is.vector may return TRUE for
the atomic modes, list and expression.
For any mode, it will return FALSE if x has any
attributes except names. (This is incompatible with S.) On the other
hand, as.vector removes all attributes including names
for results of atomic mode (but not those of mode "list" nor
"expression").
Note that factors are not vectors; is.vector returns
FALSE and as.vector converts a factor to a character
vector for mode = "any".
For vector, a vector of the given length and mode. Logical
vector elements are initialized to FALSE, numeric vector
elements to 0, character vector elements to "", raw
vector elements to nul bytes and list elements to NULL.
For as.vector, a vector (atomic or of type list). All
attributes are removed from the result if it is of an atomic mode, but
not in general for a list result. The default method handles 24 input
types and 12 values of type: the details of most coercions are
undocumented and subject to change.
For is.vector, TRUE or FALSE.
is.vector(x, mode = "numeric") can be true for vectors of types
"integer" or "double" whereas is.vector(x, mode =
"double") can only be true for those of type "double".
as.vector()Writers of methods for as.vector need to take care to
follow the conventions of the default method. In particular
Argument mode can be "any", any of the atomic
modes, "list", "expression", "symbol",
"pairlist" or one of the aliases "double" and "name".
The return value should be of the appropriate mode. For
mode = "any" this means an atomic vector or list.
Attributes should be treated appropriately: in particular when the result is an atomic vector there should be no attributes, not even names.
is.vector(as.vector(x, m), m) should be true for any
mode m, including the default "any".
as.vector and is.vector are quite distinct from the
meaning of the formal class "vector" in the methods
package, and hence as(x, "vector") and
is(x, "vector").
Note that as.vector(x) is not necessarily a null operation if
is.vector(x) is true: any names will be removed from an atomic
vector.
modes of "symbol" (synonym "name"),
"pairlist" and "expression" are allowed but have long
been undocumented: they are used to implement as.name,
as.pairlist and as.expression, and those
functions should preferably be used directly. None of the description
here applies to those modes: see the help for the preferred
forms.
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
c, is.numeric, is.list, etc.
df <- data.frame(x=1:3, y=5:7) ## Not run: ## Error: as.vector(data.frame(x=1:3, y=5:7), mode="numeric") ## End(Not run) x <- c(a = 1, b = 2) is.vector(x) as.vector(x) all.equal(x, as.vector(x)) ## FALSE ###-- All the following are TRUE: is.list(df) ! is.vector(df) ! is.vector(df, mode="list") is.vector(list(), mode="list")