R : Int vs Num Anomaly in Vector

标签 r floating-point int

我正在阅读 R 编程入门,并注意到一个轻微的异常:

  • x <- c(2,1,1,5)产生 num 类型的向量
  • y <- c(1:5)产生 int 类型的向量
  • z <- c(1.5,2.3)产生 num 类型的向量

  • 为什么会发生这种情况? R中的基本数据类型是什么? : 是吗int还是num ?如果向量中的元素之一是 float 会发生什么, 向量的类型是否变为 float或者是别的什么 ?当向量中的所有元素都是 float 时会发生什么- 为什么还是这样num在这种情况下 ?

    最佳答案

    有两个不同的问题在起作用:

  • c(2, 1, 1, 5)您正在明确创建 numeric类型。对于 integer ,您将不得不使用 c(2L, 1L, 1L, 5L)仅作为后缀 L确保创建 integer类型(或通过 as.integer() 等进行类型转换)。但请继续阅读...
  • c(1:5) : 的历史覆盖发挥作用。因为使用几乎总是涉及整数序列,这就是你得到的:整数。

  • 两种形式都记录在案,因此这不是您的问题标题所暗示的异常。

    关于R : Int vs Num Anomaly in Vector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29879183/

    相关文章:

    java - 为什么我的 char 打印为数字而不是字符?

    c++ - 为什么首选 uint32_t 而不是 uint_fast32_t?

    c# - 随机选择 2 Int 作为选项

    r - do.call 和 rbind 用于以顺序作为新列名的列表

    r - 如果 A 列 > B 列,如何将值从一列复制到新列?

    objective-c - 从 float 中获取小数部分

    javascript - Javascript 中 float 与整数的比较

    r - R 中的几何布朗运动仿真

    r - 为向量条目分配名称而不为向量分配变量名称?

    C++ 在 boost 属性树中存储浮点值