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")
"list"
or "expression"
or (except for vector
)
"any"
. Currently, is.vector()
allows any type (see
typeof
) for mode
, and when mode is not
"any"
, is.vector(x, mode)
is almost the same as
typeof(x) == mode
.length > .Machine$integer.max
, it
has to be of type "double"
. Supplying an argument of length
other than one is an error.as.vector
need to take care to
follow the conventions of the default method. In particular
mode
can be "any"
, any of the atomic
modes, "list"
, "expression"
, "symbol"
,
"pairlist"
or one of the aliases "double"
and "name"
. mode = "any"
this means an atomic vector or list. is.vector(as.vector(x, m), m)
should be true for any
mode m
, including the default "any"
.
"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"
.
c
, is.numeric
, is.list
, etc.
df <- data.frame(x = 1:3, y = 5:7)
## Error:
try(as.vector(data.frame(x = 1:3, y = 5:7), mode = "numeric"))
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")
Run the code above in your browser using DataLab