mode
Data Mode of the Values in a Vector
Description
Returns or changes the type of the object.
Usage
mode(x)
mode(x) <- value
storage.mode(x)
storage.mode(x) <- value
Arguments
| x | any object.  Missing values (NAs) are allowed. | 
| value | a character string specifying the new mode. | 
 
Details
When you use mode on the left of an assignment, it calls the 
corresponding as.xxx function (where xxx is the 
mode string value) to do the conversion. This design allows mode 
to handle user-defined conversions. (storage.mode handles 
only built-in conversions.)
storage.mode is relevant when you are calling .Fortran or 
.C with numeric data. It coerces the data as either "integer" 
or "double". To pass data as single-precision floating 
point numbers, you must use the as.single function, or you 
must set mode to "single".
The atomic modes are:
| "raw" | 
| "logical" | 
| "numeric" | 
| "complex" | 
| "character" | 
| "NULL" | 
The other modes include:
| "list" | 
| "function" | 
| "expression" | 
| "name" | 
| "call" | 
| "environment" | 
Other modes are used internally, so you rarely encounter them.
Value
 
| storage.mode | returns a character string that is 
the type of x. (Similar to typeof.) | 
 
 | mode | returns a character string similar to 
that of storage.mode. | 
 |  |  | 
Note that vectors with the 
storage.mode "double" or 
"integer" are reported to be of 
mode "numeric".
 
Side Effects
When you use mode on the left of an assignment, the mode
of the object is changed to value, interpreted as
a character string.
The attributes of x are unchanged.
Note
The mode function has nothing to do with the statistical concept
of the mode of a distribution.
See Also
typeof,
class,
.Fortran,
as.single,
double,
integer,
vector,
complex,
character,
numeric,
is.atomic.
 
Examples
x <- 42
mode(x)  # "numeric"
storage.mode(x)  # "double"
mode(x) <- "complex"  # change mode to complex
storage.mode(x) <- "double"
# User-defined conversion
as.foo <- function(x) class(x) <- 'foo'
x <- 'bar'
mode(x) <- 'foo' # calls as.foo