numeric package:base R Documentation _N_u_m_e_r_i_c _V_e_c_t_o_r_s _D_e_s_c_r_i_p_t_i_o_n: Creates or coerces objects of type '"numeric"'. 'is.numeric' is a more general test of an object being interpretable as numbers. _U_s_a_g_e: numeric(length = 0) as.numeric(x, ...) is.numeric(x) _A_r_g_u_m_e_n_t_s: length: desired length. x: object to be coerced or tested. ...: further arguments passed to or from other methods. _D_e_t_a_i_l_s: 'numeric' is identical to 'double' (and 'real'). It creates a double-precision vector of the specified length with each element equal to '0'. 'as.numeric' is a generic function, but S3 methods must be written for 'as.double'. It is identical to 'as.double' (and 'as.real'). 'is.numeric' is generic: you can write methods to handle specific classes of objects, see InternalMethods. It is *not* the same as 'is.double'. Factors are handled by the default method, and there are methods for classes '"Date"' and '"POSIXt"' (in all three cases the result is false). Methods for 'is.numeric' should only return true if the base type of the class is 'double' or 'integer' _and_ values can reasonably be regarded as numeric (e.g. arithmetic on them makes sense). _V_a_l_u_e: for 'numeric' and 'as.numeric' see 'double'. The default method for 'is.numeric' returns 'TRUE' if its argument is of mode '"numeric"' (type '"double"' or type '"integer"') and not a factor, and 'FALSE' otherwise. That is, 'is.integer(x) || is.double(x)', or '(mode(x) == "numeric") && !is.factor(x)'. _S_4 _m_e_t_h_o_d_s: 'as.numeric' and 'is.numeric' are internally S4 generic and so methods can be set for them _via_ 'setMethod'. To ensure that 'as.numeric', 'as.double' and 'as.real' remain identical, S4 methods can only be set for 'as.numeric'. _N_o_t_e _o_n _n_a_m_e_s: It is a historical anomaly that R has three names for its floating-point vectors, 'double', 'numeric' and 'real'. 'double' is the name of the type. 'numeric' is the name of the mode and also of the implicit class. As an S4 formal class, use '"numeric"' (there was a formal class '"double"' prior to R 2.7.0). 'real' is deprecated and should not be used in new code. The potential confusion is that R has used _mode_ '"numeric"' to mean 'double or integer', which conflicts with the S4 usage. Thus 'is.numeric' tests the mode, not the class, but 'as.numeric' (which is identical to 'as.double') coerces to the class. _R_e_f_e_r_e_n_c_e_s: Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) _The New S Language_. Wadsworth & Brooks/Cole. _S_e_e _A_l_s_o: 'double', 'integer', 'storage.mode'. _E_x_a_m_p_l_e_s: as.numeric(c("-.1"," 2.7 ","B")) # (-0.1, 2.7, NA) + warning as.numeric(factor(5:10))