10

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

输入

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

预期输出

NA 2 3 4 NA 6

或者

2 3 4 6
4

2 回答 2

13

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

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

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

于 2011-12-26T05:01:35.173 回答
8

同样,如果您想要 NA:

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

否定逻辑布尔值,!因此您可以选择要丢失的值。然后,在一点点 R 的魅力中,您将 NA 分配给选定的值。

于 2011-12-26T14:31:47.590 回答