sum() looks faster to me
tmp <- as.logical(rbinom(100,1,.5))
> system.time(for (i in 1:10000) length(tmp[tmp]))
[1] 0.09 0.00 0.09 NA NA
> system.time(for (i in 1:10000) sum(tmp))
[1] 0.03 0.00 0.03 NA NA
I am running on Windows XP
> Sys.getenv()[20]
PROCESSOR_IDENTIFIER
"x86 Family 15 Model 2 Stepping 4, GenuineIntel"
>