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


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