is.infinitereturn a vector of the same length as
x, indicating which elements are finite (not infinite and not missing) or infinite.
-Inf are positive and negative infinity
NaN means Not a Number. (These apply to numeric
values and real and imaginary parts of complex values but not to
values of integer vectors.)
reserved words in the R language.
is.finite(x) is.infinite(x) is.nan(x)Inf NaN
namesattributes are preserved.
is.finitereturns a vector of the same length as
xthe jth element of which is
x[j]is finite (i.e., it is not one of the values
FALSEotherwise. Complex numbers are finite if both the real and imaginary parts are.
is.infinite returns a vector of the same length as
jth element of which is
x[j] is infinite (i.e.,
equal to one of
otherwise. This will be false unless
x is numeric or complex.
Complex numbers are infinite if either the real or the imaginary part is.
is.nan tests if a numeric value is
NaN. Do not test
NaN, or even use
systems typically have many different NaN values. One of these is
used for the numeric missing value
false for that value. A complex number is regarded as
either the real or imaginary part is
NaN but not
All elements of logical, integer and raw vectors are considered not to
All three functions accept
NULL as input and return a length
zero result. The default methods accept character and raw vectors, and
FALSE for all entries. Prior to R version 2.14.0 they
accepted all input, returning
FALSE for most non-numeric
values; cases which are not atomic vectors are now signalled as
All three functions are generic: you can write methods to handle specific classes of objects, see InternalMethods.
D. Goldberg (1991) What Every Computer Scientist Should Know about Floating-Point Arithmetic ACM Computing Surveys, 23(1). Postscript version available at http://www.validlab.com/goldberg/paper.ps Extended PDF version at http://www.validlab.com/goldberg/paper.pdf
The C99 function
isfinite is used for
NA, Not Available which is not a number as well, however usually used for missing values and applies to many modes, not just numeric and complex.
pi / 0 ## = Inf a non-zero number divided by zero creates infinity 0 / 0 ## = NaN 1/0 + 1/0 # Inf 1/0 - 1/0 # NaN stopifnot( 1/0 == Inf, 1/Inf == 0 ) sin(Inf) cos(Inf) tan(Inf)
Run the code above in your browser using DataCamp Workspace