SEQ()

seq:运算符更灵活,允许指定 1 以外的步骤。

该函数创建一个从 start(默认为 1)到结尾的序列,包括该数字。

你只能提供结束(to)参数

seq(5)
# [1] 1 2 3 4 5

以及开始

seq(2, 5) # or seq(from=2, to=5)
# [1] 2 3 4 5

最后一步(by

seq(2, 5, 0.5) # or seq(from=2, to=5, by=0.5)
# [1] 2.0 2.5 3.0 3.5 4.0 4.5 5.0

当交替提供所需的输出长度(length.out)时,seq 可以选择推断(均匀间隔)的步骤

seq(2,5, length.out = 10)
# [1] 2.0 2.3 2.6 2.9 3.2 3.5 3.8 4.1 4.4 4.7 5.0

如果序列需要与另一个矢量具有相同的长度,我们可以使用 along.with 作为 length.out = length(x) 的简写

x = 1:8
seq(2,5,along.with = x)
# [1] 2.000000 2.428571 2.857143 3.285714 3.714286 4.142857 4.571429 5.000000

seq 系列有两个有用的简化功能:seq_alongseq_lenseq.intseq_alongseq_len 函数构造从 1 到 N 的自然(计数)数字,其中 N 由函数参数确定,矢量或列表的长度为 seq_along,整数参数由 seq_len 确定。

seq_along(x)
# [1] 1 2 3 4 5 6 7 8

请注意,seq_along 返回现有对象的索引。

# counting numbers 1 through 10
seq_len(10)
[1]  1  2  3  4  5  6  7  8  9 10
# indices of existing vector (or list) with seq_along
letters[1:10]
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j"
seq_along(letters[1:10])
[1]  1  2  3  4  5  6  7  8  9 10

seq.intseq 相同,维持古代兼容性。

还有一个旧函数 sequence,它从非负参数创建序列向量。

sequence(4)
# [1] 1 2 3 4
sequence(c(3, 2))
# [1] 1 2 3 1 2
sequence(c(3, 2, 5))
# [1] 1 2 3 1 2 1 2 3 4 5