filling values in a vector using smaller vector
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 patrick at 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")