使用R中的另一个布尔向量对矢量进行子集

时间:2011-12-26 04:48:47

标签: r subset iterable-unpacking

使用以下两个R向量,我想使用valMe中的布尔值提取boolMe的子集。另外,我想有两个可能的输出,一个是boolMe中的FALSE值从valMe中省略,另一个是FALSE值被NA替换的输出。进一步说明我想在代码中做什么:

输入

boolMe<-c(FALSE, TRUE, TRUE, TRUE, FALSE, TRUE)
valMe<-1:6

预期输出

NA 2 3 4 NA 6

2 3 4 6

2 个答案:

答案 0 :(得分:11)

您可以使用valMe运算符直接为[编制索引:

> valMe[boolMe]
[1] 2 3 4 6

有关详细信息,请参阅2.7 of the intro manual部分。

答案 1 :(得分:7)

同样,如果你想要NAs:

> valMe[!boolMe] <- NA
> valMe
[1] NA  2  3  4 NA  6

!否定逻辑布尔值,因此您选择了想要丢失的值。然后,只需触摸R awesomeness,就可以为选定的值指定NA。