【发布时间】:2018-10-19 16:28:50
【问题描述】:
R编程中双精度数据类型和数值数据类型的显着区别是什么?
【问题讨论】:
R编程中双精度数据类型和数值数据类型的显着区别是什么?
【问题讨论】:
R 的浮点向量有两个名称,双精度和数字(以前是实数),这是一个历史反常现象。 double 是类型的名称。 numeric 是模式的名称,也是隐式类的名称。作为 S4 正式课程,请使用“数字”。 潜在的混淆是 R 使用模式“数字”来表示“双精度或整数”
我们可以认为双精度数属于数字。看到这个:
> is.double(1)
[1] TRUE
> is.numeric(1)
[1] TRUE
R 通常将数字存储为双精度数。使用“numeric()”与“double()”相同。您还可以将数字存储为单个或整数。两者都是数字。出于性能原因,您可以选择强制将数字存储为整数,但除非您正在构建一个包,否则这种权衡可能不值得您花时间。
我建议阅读Gillespie's Overview 以了解有关类型和性能的更多信息。
【讨论】:
@tk3:数字并不总是与双精度(和实数)相同。
> x <- 10
> storage.mode(x)
[1] "double"
> is.numeric(x)
[1] TRUE
> x <- as.integer(x)
> storage.mode(x)
[1] "integer"
> is.numeric(x)
[1] TRUE
【讨论】: