Rev 85065 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
% File src/library/base/man/integer.Rd% Part of the R package, https://www.R-project.org% Copyright 1995-2010 R Core Team% Distributed under GPL 2 or later\name{integer}\alias{integer}\alias{as.integer}\alias{is.integer}\title{Integer Vectors}\description{Creates or tests for objects of type \code{"integer"}.}\usage{integer(length = 0)as.integer(x, \dots)is.integer(x)}\arguments{\item{length}{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.}\item{x}{object to be coerced or tested.}\item{\dots}{further arguments passed to or from other methods.}}\details{Integer vectors exist so that data can be passed to C or Fortran codewhich expects them, and so that (small) integer data can be representedexactly and compactly.Note that current implementations of \R use 32-bit integers forinteger vectors, so the range of representable integers is restrictedto about \eqn{\pm 2 \times 10^9}{+/-2*10^9}: \code{\link{double}}s canhold much larger integers exactly.}\value{\code{integer} creates a integer vector of the specified length.Each element of the vector is equal to \code{0}.\code{as.integer} attempts to coerce its argument to be of integertype. The answer will be \code{NA} unless the coercion succeeds. Realvalues larger in modulus than the largest integer are coerced to\code{NA} (unlike S which gives the most extreme integer of the samesign). Non-integral numeric values are truncated towards zero (i.e.,\code{as.integer(x)} equals \code{\link{trunc}(x)} there), andimaginary parts of complex numbers are discarded (with a warning).Character strings containing optional whitespace followed by either adecimal representation or a hexadecimal representation (starting with\code{0x} or \code{0X}) can be converted, as well as any allowed bythe platform for real numbers. Like \code{\link{as.vector}} it stripsattributes including names. (To ensure that an object \code{x} is ofinteger type without stripping attributes, use\code{\link{storage.mode}(x) <- "integer"}.)\code{is.integer} returns \code{TRUE} or \code{FALSE} depending onwhether its argument is of integer \link{type} or not, unless it is afactor when it returns \code{FALSE}.}\note{\code{is.integer(x)} does \bold{not} test if \code{x} contains integernumbers! For that, use \code{\link{round}}, as in the function\code{is.wholenumber(x)} in the examples.}\references{Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988)\emph{The New S Language}.Wadsworth & Brooks/Cole.}\seealso{\code{\link{numeric}}, \code{\link{storage.mode}}.\code{\link{round}} (and \code{ceiling} and \code{floor} on that helppage) to convert to integral values.}\examples{## as.integer() truncates:x <- pi * c(-1:1, 10)as.integer(x)is.integer(1) # is FALSE !is.wholenumber <-function(x, tol = .Machine$double.eps^0.5) abs(x - round(x)) < tolis.wholenumber(1) # is TRUE(x <- seq(1, 5, by = 0.5) )is.wholenumber( x ) #--> TRUE FALSE TRUE ...}\keyword{classes}