

_T_h_e (_S_t_o_r_a_g_e) _M_o_d_e _o_f _a_n _O_b_j_e_c_t

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

_D_e_s_c_r_i_p_t_i_o_n:

     `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'.

_S_e_e _A_l_s_o:

     `typeof' for the R-internal ``mode'', `attributes'.

_E_x_a_m_p_l_e_s:

     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)

