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”. (These apply to numeric
values and real and imaginary parts of complex values but not to
values of integer vectors.)

### 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)

[Package

*base* version 2.1.0

Index]