mode {base} | R Documentation |
The (Storage) Mode of an Object
Description
mode
and storage.mode
provide means of determining the
type or storage mode of an object. Both return a character string
giving the (storage) mode of the object – often the same – both
relying on the output of typeof(x)
, see the example
below.
The two assignment versions are currently identical. Both
mode(x) <- newmode
and storage.mode(x) <- newmode
change
the mode
or storage.mode
of object x
to
newmode
.
Usage
mode(x)
mode(x) <- "<mode>"
storage.mode(x)
storage.mode(x) <- "<mode>"
Details
As storage mode "single" is only a pseudo-mode in R, it will not be
reported by mode
or storage.mode
: use
attr(object, "Csingle")
to examine this. However, the
assignment versions can be used to set the mode to "single"
,
which sets the real mode to "double"
and the "Csingle"
attribute to TRUE
. Setting any other mode will remove the
"Csingle"
attribute.
See Also
typeof
for the R-internal “mode”,
attributes
.
Examples
sapply(options(),mode)
cex3 <- c("NULL","1","1:1","1i","list(1)","data.frame(x=1)", "pairlist(pi)",
"args", "lm", "formals(lm)[[1]]", "formals(lm)[[2]]",
"y~x","(y~x)[[1]]", "expression(x <- pi)[[1]][[1]]")
lex3 <- sapply(cex3, function(x) eval(parse(text=x)))
mex3 <- t(sapply(lex3, function(x) c(typeof(x), storage.mode(x), mode(x))))
dimnames(mex3) <- list(cex3, c("typeof(.)","storage.mode(.)","mode(.)"))
mex3
## This also makes a local copy of `pi':
storage.mode(pi) <- "complex"
storage.mode(pi)
rm(pi)