is.finite {base} | R Documentation |
Finite, Infinite and NaN Numbers
Description
is.finite
and is.infinite
return a vector of the same
length as x
, indicating which elements are finite (not infinite
and not missing).
Inf
and -Inf
are positive and negative “infinity”
whereas NaN
means “Not a Number”.
Usage
is.finite(x)
is.infinite(x)
Inf
NaN
is.nan(x)
Arguments
x |
(numerical) object to be tested. |
Details
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
). All elements of character and
generic (list) vectors are false, so is.finite
is only useful for
logical, integer, numeric and complex vectors. 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
).
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.
In most ports of R one of these is used for the numeric missing
value NA
. It is generic: you can write methods to handle
specific classes of objects, see InternalMethods.
Note
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.
References
ANSI/IEEE 754 Floating-Point Standard.
This link does not work any more (2003/12)
Currently (6/2002), Bill Metzenthen's billm@suburbia.net tutorial
and examples at
http://www.suburbia.net/~billm/
See Also
NA
, ‘Not Available’ which is not a number
as well, however usually used for missing values and applies to many
modes, not just numeric.
Examples
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)