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


R log 對數和指數


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

說明

log 計算對數,默認為自然對數,log10 計算常用(即以 10 為底)對數,log2 計算二進製(即以 2 為底)對數。通用形式 log(x, base) 計算以 base 為底的對數。

log1p(x) 也可以針對 準確計算

exp 計算指數函數。

expm1(x) 也可以針對 準確計算

用法

log(x, base = exp(1))
logb(x, base = exp(1))
log10(x)
log2(x)

log1p(x)

exp(x)
expm1(x)

參數

x

數字或複數向量。

base

正數或複數:計算對數的底數。默認為 = exp(1)

細節

logb 之外的所有函數都是通用函數:可以單獨為它們定義方法,也可以通過 Math 組通用函數定義方法。

log10log2 隻是方便的包裝器,但在操作係統支持的情況下,以 10 和 2 為基數的日誌(無論是通過 log 還是包裝器計算)將更有效、更準確地計算。可以為它們單獨設置方法(否則將使用log 的方法)。

logblog 的包裝器,用於與 S 兼容。如果為 log 設置了(S3 或 S4)方法,它們將被調度。不要在 logb 本身上設置 S4 方法。

log 之外的所有函數都是primitive 函數。

x 長度相同的向量,包含轉換後的值。 log(0) 給出 -Inf ,而 x 的負值的 log(x)NaNexp(-Inf)0

對於日誌函數的複雜輸入,該值是一個複數,其虛部在 範圍內:使用範圍的哪一端可能是特定於平台的。

S4方法

expexpm1loglog10log2log1p 是 S4 通用型,並且是 Math 組通用型的成員。

請注意,這意味著 log 的 S4 泛型的簽名隻有一個參數 x ,但 base 可以傳遞給方法(但不會用於方法選擇)。另一方麵,如果您僅為 Math 組泛型設置方法,則您的類將忽略 logbase 參數。

例子

log(exp(3))
log10(1e7) # = 7

x <- 10^-(1+2*1:9)
cbind(deparse.level=2, # to get nice column names
      x, log(1+x), log1p(x), exp(x)-1, expm1(x))

來源

log1pexpm1 可以從操作係統中獲取,但如果操作係統中不可用,則它們基於洛斯阿拉莫斯科學實驗室的 W. Fullerton 的 Fortran 子例程 dlnrel(請參閱 https://netlib.org/slatec/fnlib/dlnrel.f )和(對於小型x) 分別求解 log1p(y) = x 的單個牛頓步。

參考

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

Chambers, J. M. (1998) Programming with Data. A Guide to the S Language. Springer. (for logb.)

也可以看看

TrigsqrtArithmetic

相關用法


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