从矢量中选择每个其他元素

时间:2012-11-19 20:40:33

标签: r vector seq

假设我有一个向量:

remove <- c(17, 18, 19, 20, 24, 25, 30, 31, 44, 45)

如何选择/提取向量中的每个第二个值?像这样:17, 19, 24, 30, 44

我正在尝试使用seq函数:seq(remove, 2)但它不能正常工作。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:94)

remove[c(TRUE, FALSE)]

会做到这一点。


它如何运作?

如果逻辑向量用于R中的索引,如果索引向量比包含值的向量短,则会回收它们的值。

此处,向量remove包含十个值。如果使用索引向量c(TRUE, FALSE),则实际命令为:remove[c(TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE)]

因此,选择具有奇数索引号的所有值。

答案 1 :(得分:16)

remove[seq(1,length(remove),2)]

答案 2 :(得分:9)

另一种选择:

> remove[seq_along(remove) %% 2 > 0]
[1] 17 19 24 30 44