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_along
,seq_len
和 seq.int
。seq_along
和 seq_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.int
與 seq
相同,維持古代相容性。
還有一箇舊函式 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