is.finite
and is.infinite
return a vector of the same
length as x
, indicating which elements are finite (not infinite
and not missing) or infinite.
Inf
and Inf
are positive and negative infinity
whereas 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.) Inf
and NaN
are
reserved words in the R language.
1 2 3 4 5 6  is.finite(x)
is.infinite(x)
is.nan(x)
Inf
NaN

x 
R object to be tested: the default methods handle atomic vectors. 
is.finite
returns a vector of the same length as x
the
jth element of which is TRUE
if x[j]
is finite (i.e., it
is not one of the values NA
, NaN
, Inf
or
Inf
) and FALSE
otherwise. Complex
numbers are finite if both the real and imaginary parts are.
is.infinite
returns a vector of the same length as x
the
jth element of which is TRUE
if x[j]
is infinite (i.e.,
equal to one of Inf
or Inf
) and FALSE
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
equality to NaN
, or even use identical
, since
systems typically have many different NaN values. One of these is
used for the numeric missing value NA
, and is.nan
is
false for that value. A complex number is regarded as NaN
if
either the real or imaginary part is NaN
but not NA
.
All elements of logical, integer and raw vectors are considered not to
be NaN.
All three functions accept NULL
as input and return a length
zero result. The default methods accept character and raw vectors, and
return FALSE
for all entries. Prior to R version 2.14.0 they
accepted all input, returning FALSE
for most nonnumeric
values; cases which are not atomic vectors are now signalled as
errors.
All three functions are generic: you can write methods to handle specific classes of objects, see InternalMethods.
A logical vector of the same length as x
: dim
,
dimnames
and names
attributes are preserved.
In R, basically all mathematical functions (including basic
Arithmetic
), are supposed to work properly with
+/ Inf
and NaN
as input or output.
The basic rule should be that calls and relations with Inf
s
really are statements with a proper mathematical limit.
Computations involving NaN
will return NaN
or perhaps
NA
: which of those two is not guaranteed and may depend
on the R platform (since compilers may reorder computations).
The IEC 60559 standard, also known as the ANSI/IEEE 754 FloatingPoint Standard.
https://en.wikipedia.org/wiki/NaN.
D. Goldberg (1991) What Every Computer Scientist Should Know
about FloatingPoint 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 is.finite
.
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.
Arithmetic
, double
.
1 2 3 4 5 6 7 8 9 10 11 12 13 
Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.
Please suggest features or report bugs with the GitHub issue tracker.
All documentation is copyright its authors; we didn't write any of that.