Infinity and Things that Are Not a Number (NaN)
Calculations can lead to answers that are plus infinity, represented in R by Inf, or minus infinity, which is represented as –Inf:
3/0 [1] Inf -12/0 [1] -Inf
Calculations involving infinity can be evaluated: for instance,
exp(-Inf) [1] 0 0/Inf [1] 0 (0:3)^Inf [1] 0 1 Inf Inf
Other calculations, however, lead to quantities that are not numbers. These are represented in R by NaN (‘not a number’). Here are some of the classic cases:
0/0 [1] NaN Inf-Inf [1] NaN Inf/Inf [1] NaN
You need to understand clearly the distinction between NaN and NA (this stands for ‘not available’ and is the missing-value symbol in R; see below). The function is.nan is provided to check specifically for NaN, and is.na also returns TRUE for NaN. Coercing NaN to logical or integer type gives an NA of the appropriate type. There are built-in tests to check whether a number is finite or infinite:
is.finite(10) [1] TRUE is.infinite(10) [1] FALSE is.infinite(Inf) [1] TRUE
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access