Thank you both for such beautiful solutions. Just what I was looking for! I love the Internet, R, and the R-list! There is so much opportunity to learn. In fact, looking at the replace function, I see the two solutions are the same:
> replace function (x, list, values) { x[list] <- values x } <environment: namespace:base> Thanks again. You made my day. Have a happy holiday season. -milton ====================== On Wednesday 24 December 2008 1:46 am, you wrote: > Wacek Kusnierczyk wrote: > > 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) > > > > replace(large, which(large), small) > > in fact, this will do: > > replace(large, large, small) > > vQ -------------------------- I believe the following does what is wanted: desired <- large desired[large] <- small Patrick Burns patr...@burns-stat.com +44 (0)20 8525 0696 http://www.burns-stat.com (home of S Poetry and "A Guide for the Unwilling S User") ______________________________________________ R-help@r-project.org 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.