双精度数据类型和数值数据类型之间的差异

时间:2018-05-09 13:59:56

标签: r precision

R编程中双精度数据类型和数值数据类型之间的显着差异是什么?

3 个答案:

答案 0 :(得分:7)

来自stat.ethz.ch:

  

这是一个历史异常,R有两个浮点向量的名称,双和数字(以前有实数)。   double是类型的名称。 numeric是模式的名称,也是隐式类的名称。作为S4正式课程,请使用“数字”。   潜在的混淆是R使用“数字”模式来表示“双重或整数”

我们可以认为双打属于数字。要看到这个:

 > is.double(1)
 [1] TRUE
 > is.numeric(1)
 [1] TRUE

R通常将数字存储为双精度数。使用“numeric()”与“double()”相同。您还可以将数字存储为单个或整数。两者都是数字。出于性能原因,您可以选择强制将数字存储为整数,但除非您正在构建包,否则权衡可能不值得花时间。

我建议阅读Gillespie's Overview了解有关类型和效果的更多信息。

答案 1 :(得分:2)

根据rdocumentation

  

详细信息: 数字与double(和实际)相同。

希望有所帮助:)

答案 2 :(得分:0)

@ tk3:数字并不总是等于double(和实数)。

> 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