【问题标题】:Difference between double- precision data type and numeric data type双精度数据类型和数值数据类型的区别
【发布时间】:2018-10-19 16:28:50
【问题描述】:

R编程中双精度数据类型和数值数据类型的显着区别是什么?

【问题讨论】:

    标签: r precision


    【解决方案1】:

    来自stat.ethz.ch:

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

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

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

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

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

    【讨论】:

    【解决方案2】:

    @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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-19
      • 2015-02-20
      • 2016-03-11
      • 2015-07-26
      • 2019-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多