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

hhh*_*hhh 8 r subset iterable-unpacking

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

输入

boolMe<-c(FALSE, TRUE, TRUE, TRUE, FALSE, TRUE)
valMe<-1:6
Run Code Online (Sandbox Code Playgroud)

预期输出

NA 2 3 4 NA 6
Run Code Online (Sandbox Code Playgroud)

要么

2 3 4 6
Run Code Online (Sandbox Code Playgroud)

Cha*_*ase 11

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

> valMe[boolMe]
[1] 2 3 4 6
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅介绍手册的2.7节.


Ari*_*man 7

同样,如果你想要NAs:

> valMe[!boolMe] <- NA
> valMe
[1] NA  2  3  4 NA  6
Run Code Online (Sandbox Code Playgroud)

!否定逻辑布尔所以你选择你想错过值.然后,只需触摸R awesomeness,就可以为所选值指定NA.