当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。