filling values in a vector using smaller vector
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)
large[which(large)] = small
# large[which(large)] = paste("*", small, "*", sep="") to see it's as
you specify
?which
oops, i read your mail too quickly, assumed you wanted to make an in-place replacement. the functional way would be: replace(large, which(large), small) vQ