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


R zapsmall 数字四舍五入:将小数变为零


R语言 zapsmall 位于 base 包(package)。

说明

zapsmall 确定用于调用 round(x, digits = dr)digits 参数 dr,使得接近于零的值(与最大绝对值相比)为 ‘zapped’,即替换为 0

用法

zapsmall(x, digits = getOption("digits"),
         mFUN = function(x, ina) max(abs(x[!ina])),
         min.d = 0L)

参数

x

数字或复数向量或任何Rnumber-like 对象有一个round方法和基本算术方法包括log10().

digits

指示要使用的精度的整数。

mFUN

数值(或复数)xfunction(x, ina)logical ina := is.na(x) 返回最大 abs(x) 值的大小顺序的正数。默认值是向后兼容的,但不稳健,例如,当 x 具有无限条目时不是很有用。

min.d

一个整数,指定 mFUN(*) > 0 时在生成的 round(x, digits=*) 调用中使用的最小位数。

例子

x2 <- pi * 100^(-1:3)
   print(  x2 / 1000, digits = 4)
zapsmall(  x2 / 1000, digits = 4)
zapsmall(  x2 / 1000) # automatical digits
zapsmall(c(x2 / 1000, Inf)) # round()s to integer ..
zapsmall(c(x2 / 1000, Inf), min.d=-Inf) # everything  is small wrt  Inf

## using a *robust* mFUN
mF_rob <- function(x, ina) boxplot.stats(x, do.conf=FALSE)$stats[5]







## with robust mFUN(), 'Inf' is no longer distorting the picture:
zapsmall(c(x2 / 1000, Inf), mFUN = mF_rob)
zapsmall(c(x2 / 1000, 999), mFUN = mF_rob)
zapsmall(c(x2 / 1000, Inf), mFUN = mF_rob, min.d = -5)
zapsmall(c(x2 / 1000, 999), mFUN = mF_rob, min.d = -5)

zapsmall(exp(1i*0:4*pi/2))

参考

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

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Rounding of Numbers: Zapping Small Ones to Zero。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。