當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R is.finite 有限、無限和 NaN 數


R語言 is.finite 位於 base 包(package)。

說明

is.finiteis.infinite 返回與 x 相同長度的向量,指示哪些元素是有限(不是無限且不是缺失)或無限的。

Inf-Inf是正無窮大和負無窮大,而NaN意思是“不是數字”。 (這些適用於數值以及複數值的實部和虛部,但不適用於整數向量的值。)InfNaN(也NA) 是預訂的中的單詞R語言。

用法

is.finite(x)
is.infinite(x)
is.nan(x)

Inf
NaN

參數

x

R要測試的對象:默認方法處理原子向量。

細節

is.finite 返回與 x 長度相同的向量,如果 x[j] 是有限的(即,它不是值 NANaNInf 之一,則該向量的第 j 個元素是 TRUE-Inf )和 FALSE 否則。如果實部和虛部都是有限的,則複數是有限的。

is.infinite 返回與 x 長度相同的向量,如果 x[j] 是無限的(即等於 Inf-Inf 之一),則其第 j 個元素是 TRUE,否則返回 FALSE。除非 x 是數字或複數,否則這將是錯誤的。如果實部或虛部是無限的,複數就是無限的。

is.nan 測試數值是否為 NaN 。不要測試與 NaN 的相等性,甚至不要使用 identical ,因為係統通常具有許多不同的 NaN 值。其中之一用於數字缺失值 NA ,而 is.nan 對於該值為 false。如果複數的實部或虛部是 NaN 但不是 NA ,則複數被視為 NaN 。邏輯向量、整數向量和原始向量的所有元素均不被視為 NaN。

所有三個函數都接受NULL作為輸入並返回長度為零的結果。默認方法接受字符和原始向量,並返回FALSE對於所有條目。之前R版本 2.14.0 他們接受所有輸入,返回FALSE對於大多數非數字值;非原子向量的情況現在被標記為錯誤。

所有三個函數都是通用的:您可以編寫方法來處理特定類的對象,請參閱InternalMethods

保留與 x 長度相同的邏輯向量:dimdimnamesnames 屬性。

注意

R,本質上所有的數學函數(包括基本的Arithmetic),應該可以正常工作+/- InfNaN作為輸入或輸出。

基本規則應該是,與 Inf 的調用和關係實際上是具有適當數學限製的語句。

計算涉及NaN將返回NaN也許NA:這兩者中哪一個不受保證並且可能取決於R平台(因為編譯器可能會重新排序計算)。

例子

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)

參考

The IEC 60559 standard, also known as the ANSI/IEEE 754 Floating-Point Standard.

https://en.wikipedia.org/wiki/NaN.

D. Goldberg (1991). What Every Computer Scientist Should Know about Floating-Point Arithmetic. ACM Computing Surveys, 23(1), 5-48. doi:10.1145/103162.103163.
Also available at https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html.

The C99 function isfinite is used for is.finite.

也可以看看

NA,“不可用”,它也不是數字,但通常用於缺失值並適用於多種模式,而不僅僅是數字和複雜模式。

Arithmeticdouble

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Finite, Infinite and NaN Numbers。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。