mode                  package:base                  R Documentation

The (Storage) Mode of an Object

Description:

     Get or set the type or storage mode of an object.

Usage:

     mode(x)
     mode(x) <- "<mode>"
     storage.mode(x)
     storage.mode(x) <- "<mode>"

Arguments:

       x: any R object.

Details:

     Both `mode' and `storage.mode' 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'.

     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 this attribute.

     Note (in the examples below) that some `call's have mode `"("'
     which is S compatible.

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)",
       "c", "lm", "formals(lm)[[1]]",  "formals(lm)[[2]]",
       "y~x","expression((1))[[1]]", "(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)

