如何在FALSE

时间:2016-04-01 11:09:53

标签: r logical-operators

在尝试查找向量中的TRUE个值时,我遇到了第一个Google hit。但是,这并不完全符合我的要求。我有兴趣在第一个TRUE之前的向量中找到FALSE值的数量(如果有的话)。我有一个向量a <- c(TRUE,TRUE,TRUE,FALSE,TRUE, TRUE),想要在TRUE之前找到所有FALSE值,因此输出将为3。请注意,如果向量中只有TRUE个值,它也应该有效。

2 个答案:

答案 0 :(得分:9)

这是一个简短的方法:

sum(cumprod(a))
# [1] 3

其中cumprod给出累积产品(在这种情况下为0和1);因此,它会消除第一个TRUE之后的所有FALSE,如

cumprod(a)
# [1] 1 1 1 0 0 0 

答案 1 :(得分:2)

使用以下语句我们可以轻松获得结果。

which.min(a)-1