double {base}R Documentation

Double-Precision Vectors

Description

Create, coerce to or test for a double-precision vector.

Usage

double(length = 0)
as.double(x, ...)
is.double(x)

single(length = 0)
as.single(x, ...)

Arguments

length desired length.
x object to be coerced or tested.
... further arguments passed to or from other methods.

Details

double creates a double-precision vector of the specified length. The elements of the vector are all equal to 0. It is identical to numeric (and real).

as.double is a generic function. It is identical to as.numeric (and as.real). Methods should return an object of base type "double".

is.double is a test of double type.

R has no single precision data type. All real numbers are stored in double precision format. The functions as.single and single are identical to as.double and double except they set the attribute Csingle that is used in the .C and .Fortran interface, and they are intended only to be used in that context.

as.double and is.double are primitive, so positional matching is used and any names of supplied arguments are ignored. This may not be true of methods for as.double.

Value

double creates a double-precision vector of the specified length. The elements of the vector are all equal to 0.
as.double attempts to coerce its argument to be of double type: like as.vector it strips attributes including names. (To ensure that an object is of double type without stripping attributes, use storage.mode.) Character strings containing either a decimal representation or a hexadecimal representation (starting with 0x or 0X) can be converted. as.double for factors yields the codes underlying the factor levels, not the numeric representation of the labels, see also factor.
is.double returns TRUE or FALSE depending on whether its argument is of double type or not.

Note on names

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.

References

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

See Also

integer, numeric, storage.mode.

Examples

is.double(1)
all(double(3) == 0)

[Package base version 2.9.1 Index]