代码之家  ›  专栏  ›  技术社区  ›  user1563825

一个对象如何在R中有两个不同的类?[副本]

  •  0
  • user1563825  · 技术社区  · 9 年前

    班级 数字 包括子类 整数 双重的 有趣的是,变量的类取决于它的初始化方式。例如:

    x <- c(0,0,0,0,0,1,1,1,1,1)
    y <- rep(0:1, c(5,5))
    
    x
    # [1] 0 0 0 0 0 1 1 1 1 1
    y
    # [1] 0 0 0 0 0 1 1 1 1 1
    
    class(x)
    # [1] "numeric"
    class(y)
    # [1] "integer"
    
    identical(x,y)
    # [1] FALSE
    

    我的问题:为什么R不强制 x 在这个例子中,类integer?我认为这样做更有意义 x(x) 是一个 integer numeric 矢量,但 数字 向量不一定是整数向量。因此,强制 x(x) 至少对我来说,成为整数类可能更直观。我是不是遗漏了什么?

    1 回复  |  直到 9 年前
        1
  •  -1
  •   Roland    9 年前

    当您键入 0 R将其理解为数字(双精度)。整数必须键入为 0L 当然, : 记录为返回整数值“如果 from 是整数值,结果可表示为R整数类型”。