R编程中双精度数据类型和数值数据类型之间的显着差异是什么?
答案 0 :(得分:7)
这是一个历史异常,R有两个浮点向量的名称,双和数字(以前有实数)。 double是类型的名称。 numeric是模式的名称,也是隐式类的名称。作为S4正式课程,请使用“数字”。 潜在的混淆是R使用“数字”模式来表示“双重或整数”
我们可以认为双打属于数字。要看到这个:
> is.double(1)
[1] TRUE
> is.numeric(1)
[1] TRUE
R通常将数字存储为双精度数。使用“numeric()”与“double()”相同。您还可以将数字存储为单个或整数。两者都是数字。出于性能原因,您可以选择强制将数字存储为整数,但除非您正在构建包,否则权衡可能不值得花时间。
我建议阅读Gillespie's Overview了解有关类型和效果的更多信息。
答案 1 :(得分:2)
答案 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