[R] filling values in a vector using smaller vector

Wacek Kusnierczyk Waclaw.Marcin.Kusnierczyk at idi.ntnu.no
Wed Dec 24 10:22:52 CET 2008


Milton Huang wrote:
> Dear list members:
>
> I am looking for an elegant (or efficient) way to accomplish the following:
>
> take a large boolean vector and fill the TRUE values with the values from a 
> smaller boolean vector that has a length that is the number of TRUE values of 
> the large vector.
>
> Example:
>
> large<- c(FALSE, FALSE, FALSE, TRUE, FALSE, FALSE,  TRUE, FALSE, FALSE, FALSE,  
> TRUE, FALSE)
>
> small<- c(TRUE, FALSE, TRUE)
>
> desired output = c(FALSE, FALSE, FALSE, *TRUE*, FALSE, FALSE,  *FALSE*, FALSE, 
> FALSE, FALSE, *TRUE*, FALSE)
>
>   

large[which(large)] = small
# large[which(large)] = paste("*", small, "*", sep="") to see it's as
you specify
?which

vQ



More information about the R-help mailing list