我有一个矢量:
> dput(rn, 20)
c(128L, 241L, 354L, 467L, 580L, 693L, 806L, 919L, 1032L, 1145L,
1258L, 1371L, 1484L, 1597L, 1710L, 1823L, 1936L, 2049L, 2162L,
2275L)
Run Code Online (Sandbox Code Playgroud)
如何从此向量中获取每个第三条记录?
让回收做它的魔力.
rn[c(FALSE, FALSE, TRUE)]
Run Code Online (Sandbox Code Playgroud)
虽然这(以及所有其他答案,我认为)失败了length(rn) < 3
.也许
rn[3L * seq_len(length(rn)/3L)]
Run Code Online (Sandbox Code Playgroud)
使用seq
创建索引号的序列:
> rn[seq(3, 20, 3)]
[1] 354 693 1032 1371 1710 2049
Run Code Online (Sandbox Code Playgroud)
这有效,因为seq
生成以下序列:
seq(from=3, to=20, by=3)
[1] 3 6 9 12 15 18
Run Code Online (Sandbox Code Playgroud)
更一般地说,如果您事先不知道矢量的长度,可以使用length
以下方法计算它:
seq(from=3, to=length(rn), by=3)
[1] 3 6 9 12 15 18
Run Code Online (Sandbox Code Playgroud)
请参阅?seq
更多帮助.