如何通过另一个向量中给出的索引对向量进行子集化?

时间:2017-09-08 11:16:11

标签: r vector subset

我有两个长度相等的向量,一个包含数值(num_vec),另一个只包含0和1(bool_vec)。我的目标是将num_vec中的所有值保留为与bool_vec中的索引相对应的索引。这是一个例子:

num_vec <- c(1:5)
bool_vec <- c(0, 0, 1, 0, 1)

输出应为:

> output
[1] 3 5

怎么做?

1 个答案:

答案 0 :(得分:4)

我们只需要将二进制文件转换为逻辑as.logical,以便1转换为TRUE,0转换为FALSE。然后使用该索引对矢量

进行子集化
num_vec[as.logical(bool_vec)]