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