A non-negative integer specifying the desired length.
Double values will be coerced to integer:
supplying an argument of length other than one is an error.
x
object to be coerced or tested.
...
further arguments passed to or from other methods.
Details
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.
is.numeric is an internal generic primitive
function: 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",
"POSIXt" and "difftime" (all of which
return false). Methods for is.numeric should only return true
if the base type of the class is double or integerand values can reasonably be regarded as numeric
(e.g., arithmetic on them makes sense, and comparison should be done
via the base type).
Value
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).
Warning
If x is a factor, as.numeric will return
the underlying numeric (integer) representation, which is often
meaningless as it may not correspond to the factorlevels, see the ‘Warning’ section in
factor (and the 2nd example below).
S4 methods
as.numeric and is.numeric are internally S4 generic and
so methods can be set for them viasetMethod.
To ensure that as.numeric and as.double
remain identical, S4 methods can only be set for as.numeric.
Note on names
It is a historical anomaly that R has two names for its
floating-point vectors, double and numeric
(and formerly had 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".
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.
References
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988)
The New S Language.
Wadsworth & Brooks/Cole.
See Also
double, integer, storage.mode.
Examples
as.numeric(c("-.1"," 2.7 ","B")) # (-0.1, 2.7, NA) + warning
as.numeric(factor(5:10)) # not what you'd expect
f <- factor(1:5)
## what you typically meant and want:
as.numeric(as.character(f))
## the same, considerably (for long factors) more efficient:
as.numeric(levels(f))[f]
Results
R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> library(base)
> png(filename="/home/ddbj/snapshot/RGM3/R_rel/result/base/numeric.Rd_%03d_medium.png", width=480, height=480)
> ### Name: numeric
> ### Title: Numeric Vectors
> ### Aliases: numeric as.numeric is.numeric is.numeric.Date
> ### is.numeric.POSIXt
> ### Keywords: classes attribute
>
> ### ** Examples
>
> as.numeric(c("-.1"," 2.7 ","B")) # (-0.1, 2.7, NA) + warning
[1] -0.1 2.7 NA
Warning message:
NAs introduced by coercion
>
> as.numeric(factor(5:10)) # not what you'd expect
[1] 1 2 3 4 5 6
> f <- factor(1:5)
> ## what you typically meant and want:
> as.numeric(as.character(f))
[1] 1 2 3 4 5
> ## the same, considerably (for long factors) more efficient:
> as.numeric(levels(f))[f]
[1] 1 2 3 4 5
>
>
>
>
>
> dev.off()
null device
1
>