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


R double 双精度向量


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

说明

创建、强制或测试双精度向量。

用法

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

single(length = 0)
as.single(x, ...)

参数

length

指定所需长度的非负整数。 Double 值将被强制转换为整数:提供长度不是 1 的参数是错误的。

x

对象被强制或测试。

...

传入或传出其他方法的进一步参数。

细节

double 创建指定长度的双精度向量。向量的元素都等于 0 。它与 numeric 相同。

as.double 是一个通用函数。它与 as.numeric 相同。方法应返回基类型 "double" 的对象。

is.double 是双type 的测试。

R没有单精度数据类型。所有实数均以双精度格式存储。函数as.singlesingleas.doubledouble除非他们设置属性Csingle是用在.C.Fortran接口,并且它们仅旨在在该上下文中使用。

double 创建指定长度的双精度向量。向量的元素都等于 0

as.double 尝试将其参数强制为双精度类型:与 as.vector 一样,它会删除包括名称在内的属性。 (要确保对象为 double 类型而不剥离属性,请使用 storage.mode 。)可以转换包含可选空格后跟十进制表示形式或十六进制表示形式(以 0x0X 开头)的字符串,特殊值也可以,例如 "NA""NaN""Inf""infinity" ,无论大小写。

因子的 as.double 生成因子级别的代码,而不是标签的数字表示形式,另请参阅 factor

is.double 返回TRUEFALSE,具体取决于其参数是否为双精度type

双精度值

全部R平台需要使用符合 IEC 60559(也称为 IEEE 754)标准的值。这本质上适用于 53 位精度,并表示该精度的绝对值范围约为 。它还具有特殊的值NaN(其中很多),正负无穷大和正负零(尽管R就好像它们是相同的一样)。还有非规范化(化)(或者低于正常的) 数值低于上面给出的范围但表示精度较低的数字。

有关这些限制的准确信息,请参阅.Machine。请注意,最终如何处理双精度数字取决于 CPU/FPU 和编译器。

在 IEEE 754-2008/IEC60559:2011 中,这称为 ‘binary64’ 格式。

名字注意事项

这是一个历史异常现象R其浮点向量有两个名称,doublenumeric(并且以前有real)。

doubletype 的名称。 numericmode 的名称,也是隐式 class 的名称。作为 S4 正式课程,请使用 "numeric"

潜在的混乱是R已经使用过base mode "numeric"表示“双精度或整数”,这与 S4 的用法相冲突。因此is.numeric测试模式,而不是类,但是as.numeric(这与as.double)强制类。

例子

is.double(1)
all(double(3) == 0)

参考

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

https://en.wikipedia.org/wiki/IEEE_754-1985, https://en.wikipedia.org/wiki/IEEE_754-2008, https://en.wikipedia.org/wiki/IEEE_754-2019, https://en.wikipedia.org/wiki/Double_precision, https://en.wikipedia.org/wiki/Denormal_number.

也可以看看

integernumericstorage.mode

相关用法


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