[R] Turning a logical vector into its indices without losing its length

François Pinard pinard at iro.umontreal.ca
Sat Aug 25 00:41:31 CEST 2007

[Leeds, Mark (IED)]

>I have the code below which gives me what I want for temp based on
>invec but I was wondering if there was a shorter way ( i.e :
>a one liner ) without having to initialize temp to zeros.  This is
>ppurely for learning purposes. Thanks.



>[1] 1 0 0 4 0 0 7 0

A mere:

   invec * seq_along(invec)

would do it.  To be honest, I dislike the multiplication trickery, and 
so prefer Gabor's solution, even if a bit longer:

   ifelse(invec, seq_along(invec), 0)

François Pinard   http://pinard.progiciels-bpi.ca

More information about the R-help mailing list