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


R numeric 數值向量


R語言 numeric 位於 base 包(package)。

說明

創建或強製類型為 "numeric" 的對象。 is.numeric 是對對象可解釋為數字的更一般測試。

用法

numeric(length = 0)
as.numeric(x, ...)
is.numeric(x)

參數

length

指定所需長度的非負整數。 Double 值將被強製轉換為整數:提供長度不是 1 的參數是錯誤的。

x

對象被強製或測試。

...

傳入或傳出其他方法的進一步參數。

細節

numericdouble 相同。它創建指定長度的雙精度向量,每個元素等於 0

as.numeric 是通用函數,但必須為 as.double 編寫 S3 方法。它與 as.double 相同。

is.numericinternal generic primitive 函數:您可以編寫方法來處理特定類的對象,請參閱InternalMethods 。它與 is.double 不同。因子由默認方法處理,並且有類 "Date""POSIXt""difftime" 的方法(所有這些方法都返回 false)。僅當類的基類型為 doubleinteger 並且值可以合理地視為數字時,is.numeric 的方法才應返回 true(例如,對它們進行算術有意義,並且應通過基類型進行比較) )。

對於 numericas.numeric 請參閱 double

如果 is.numeric 的參數是 mode "numeric" ( type "double" 或類型 "integer" )且不是因子,則 is.numeric 的默認方法返回 TRUE,否則返回 FALSE。即 is.integer(x) || is.double(x)(mode(x) == "numeric") && !is.factor(x)

警告

如果 xfactoras.numeric 將返回底層數字(整數)表示形式,這通常沒有意義,因為它可能與 factor levels 不對應。請參閱 factor 中的“警告”部分(以及下麵的第二個示例)。

S4方法

as.numericis.numeric 是內部 S4 通用的,因此可以通過 setMethod 為它們設置方法。

為了確保 as.numericas.double 保持一致,隻能為 as.numeric 設置 S4 方法。

名字注意事項

這是一個曆史異常現象R其浮點向量有兩個名稱,doublenumeric(並且以前有real)。

doubletype 的名稱。 numericmode 的名稱,也是隱式 class 的名稱。作為 S4 正式課程,請使用 "numeric"

潛在的混亂是R已經使用過base mode "numeric"表示“雙精度或整數”,這與 S4 的用法相衝突。因此is.numeric測試模式,而不是類,但是as.numeric(這與as.double)強製類。

例子

## Conversion does trim whitespace; non-numeric strings give NA + warning
as.numeric(c("-.1"," 2.7 ","B"))

## Numeric values are sometimes accidentally converted to factors.
## Converting them back to numeric is trickier than you'd expect.
f <- factor(5:10)
as.numeric(f) # not what you might expect, probably not what you want
## what you typically meant and want:
as.numeric(as.character(f))
## the same, considerably more efficient (for long vectors):
as.numeric(levels(f))[f]

參考

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

也可以看看

doubleintegerstorage.mode

相關用法


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