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

use*_*954 42 r vector seq

假设我有一个向量:

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

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

我正在尝试使用该seq功能:seq(remove, 2)但它不太有效.

任何帮助是极大的赞赏.

Sve*_*ein 105

remove[c(TRUE, FALSE)]
Run Code Online (Sandbox Code Playgroud)

会做的.


这个怎么运作?

如果逻辑向量用于R中的索引,则如果索引向量小于包含值的向量,则它们的值将被回收.

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

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

  • 这很漂亮 (3认同)

Gre*_*ret 19

remove[seq(1,length(remove),2)]
Run Code Online (Sandbox Code Playgroud)


Jil*_*ina 12

另一种选择:

> remove[seq_along(remove) %% 2 > 0]
[1] 17 19 24 30 44
Run Code Online (Sandbox Code Playgroud)