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

Achim Zeileis Achim.Zeileis at wu-wien.ac.at
Fri Aug 24 23:20:54 CEST 2007


On Fri, 24 Aug 2007, Leeds, Mark (IED) wrote:

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

R> logvec[logvec] <- which(logvec)
R> logvec
[1] 1 0 0 4 0 0 7 0

hth,
Z

> temp<-numeric(length(invec))
> temp[invec]<-which(invec)
> temp
>
> [1] 1 0 0 4 0 0 7 0
>
> obviously, the code below doesn't work.
>
> temp <- which(invec)
> > temp
> [1] 1 4 7
> --------------------------------------------------------
>
> This is not an offer (or solicitation of an offer) to buy/se...{{dropped}}
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
>



More information about the R-help mailing list