我无法弄清楚为什么seq()
可以根据元素中是否存在小数点来输出不同的类,而c()
总是创建一个num向量,无论是否存在小数。 / p>
例如:
seqDec <- seq(1, 2, 0.5) # num vector
cDec <- c(1, 1.5, 2) # num vector
seqInt <- seq(1, 5) # int vector
cInt <- c(1, 2, 3, 4, 5) # num vector
答案 0 :(得分:5)
c
通过串联您提供的元素来创建向量。与此相反,seq
实际上是根据特定参数通过生成新数字来构造一个序列。
因此,对于c(1, 2, 4, 5)
,由于参数为numeric
,结果也是如此(class(1)
为numeric
,而不是integer
!)。您可以通过提供 integers
integer
向量
intvec = c(1L, 2L, 3L, 4L, 5L)
令人讨厌。但可能。
对于seq
,如果不提供步长(by
参数),则该函数默认生成整数值;在这方面,它等效于:
运算符:
intvec = 1 : 5
实际上,如果您不提供by
或length.out
参数,那么seq(from, to)
将在内部执行from : to
。