我正在阅读 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/