is.finite package:base R Documentation _F_i_n_i_t_e, _I_n_f_i_n_i_t_e _a_n_d _N_a_N _N_u_m_b_e_r_s _D_e_s_c_r_i_p_t_i_o_n: '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.) All are reserved words in the R language. _U_s_a_g_e: is.finite(x) is.infinite(x) Inf NaN is.nan(x) _A_r_g_u_m_e_n_t_s: x: (numerical) object to be tested. _D_e_t_a_i_l_s: '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 types other than logical, integer, numeric and complex vectors are false. 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'). This will be false unless 'x' is numeric or complex. Complex numbers are infinite if either the real and 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 three functions are generic: you can write methods to handle specific classes of objects, see InternalMethods. The default methods handle real and complex vectors. They are primitive, so any argument names are ignored.. _N_o_t_e: 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_. _R_e_f_e_r_e_n_c_e_s: The IEC 60559 standard, also known as the ANSI/IEEE 754 Floating-Point Standard. D. Goldberg (1991) _What Every Computer Scientist Should Know about Floating-Point Arithmetic_ ACM Computing Surveys, *23(1)*. Postscript version available at Extended PDF version at for accessible information. The C99 function 'isfinite' is used for 'is.finite' if available. _S_e_e _A_l_s_o: 'NA', '_Not Available_' which is not a number as well, however usually used for missing values and applies to many modes, not just numeric. _E_x_a_m_p_l_e_s: 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)