我有一個向量:如何從矢量中獲得第三條記錄?
> dput(rn, 20)
c(128L, 241L, 354L, 467L, 580L, 693L, 806L, 919L, 1032L, 1145L,
1258L, 1371L, 1484L, 1597L, 1710L, 1823L, 1936L, 2049L, 2162L,
2275L)
我如何從這個載體每三記錄?
我有一個向量:如何從矢量中獲得第三條記錄?
> dput(rn, 20)
c(128L, 241L, 354L, 467L, 580L, 693L, 806L, 919L, 1032L, 1145L,
1258L, 1371L, 1484L, 1597L, 1710L, 1823L, 1936L, 2049L, 2162L,
2275L)
我如何從這個載體每三記錄?
使用seq
創建索引號的序列:
> rn[seq(3, 20, 3)]
[1] 354 693 1032 1371 1710 2049
這工作,因爲seq
生成以下順序:
seq(from=3, to=20, by=3)
[1] 3 6 9 12 15 18
更一般地,如果你不知道預先向量的長度,可以使用length
來計算:
seq(from=3, to=length(rn), by=3)
[1] 3 6 9 12 15 18
更多的幫助,請參見?seq
。
Mayby這樣嗎?
> x <- c(128L, 241L, 354L, 467L, 580L, 693L, 806L, 919L, 1032L, 1145L,
+ 1258L, 1371L, 1484L, 1597L, 1710L, 1823L, 1936L, 2049L, 2162L,
+ 2275L)
>
> x[seq(3, length(x), 3)]
[1] 354 693 1032 1371 1710 2049
seq()
本身並不好東西:x[seq(x)%%3==0]
會做的伎倆。技術上x[seq_along(x)%%3==0]
更快,但大多數時候你不會在乎。
例如,
> letters[seq(letters)%%3==0]
[1] "c" "f" "i" "l" "o" "r" "u" "x"
哈哈......我們肯定在某種R-答疑同步。 +1幾秒鐘內擊敗我(並在30個字符的限制內詛咒)! –