So you want to grep for each pattern as indicated by columns of test2 in the columns of test1. Something like your initial approach.
p <- c(1,3,5) # pattern like test2$'cm' x <- sample(1:10) # data like test1$'cm' x [1] 3 4 9 8 7 5 10 2 1 6 x %in% p [1] TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE (w <- which( x %in% p )) [1] 1 6 9 If no matches are found, you get numeric(0) for 'w' and I usually test this using length(w)==0. On second thought, I tried your original solution and it appears to work but not tested thoroughly. Can you provide a _simple_ example where this does not work. Thank you. z <- 1:length(x) # like test1$'3' z [1] 1 2 3 4 5 6 7 8 9 10 ifelse( x %in% p, z, 0 ) [1] 1 0 0 0 0 6 0 0 9 0 BTW, why are you quoting your names as in 'cm' and '3' and are test1, test2 really data.frames ? What does class(test1) and class(test1$'cm') say ? Regards, Adai On Wed, 2005-02-23 at 15:38 +0000, Luis Ridao Cruz wrote: > I think I did not explain very well what my problem is, > > Both frames have the same number of columns but different number of > rows. > The point is to compare 'cm' column in test1 with 'cm' in test2 as > follows > > first element in test2$'cm' versus first element in test1$'cm' > first element in test2$'cm' versus second element in test1$'cm' > first element in test2$'cm' versus element element in test1$'cm' > ..... > > > if any of the above matches returns the value in column , lets say 10, > of element in test1$'cm' , if not then 0 > > Luis > > > >>> Adaikalavan Ramasamy <[EMAIL PROTECTED]> 23/02/2005 15:07:55 > >>> > I am confused. Are you saying that your two data frames are of > different > dimensions ? > > In any case what I think what you are looking for is which. > > # generate the conditioning matrix > a <- matrix( sample(0:1, 9, replace=TRUE), nc=3 ) > a > [,1] [,2] [,3] > [1,] 1 1 1 > [2,] 1 0 0 > [3,] 0 0 1 > > # find the index where zero is present > ( w <- which( a == 0, arr.ind=T ) ) > row col > [1,] 3 1 > [2,] 2 2 > [3,] 3 2 > [4,] 2 3 > > # generate the matrix of interest > ( b <- matrix(1:9, nc=3, byrow=T) ) > [,1] [,2] [,3] > [1,] 1 2 3 > [2,] 4 5 6 > [3,] 7 8 9 > > # values that will be used to impute the zero's in a > b[w] > [1] 7 5 8 6 > > # impute the values of a with b where a is zero > a[w] <- b[w] > > # the result > a > [,1] [,2] [,3] > [1,] 1 1 1 > [2,] 1 5 6 > [3,] 7 8 1 > > > Regards, Adai > > > On Wed, 2005-02-23 at 14:14 +0000, Luis Ridao Cruz wrote: > > R-help, > > > > I have a frame which I want to fill up conditioning to another data > > frame column. > > > > The one I want to fill up is as follows (basically an empty one): > > > > > test2 > > > > cm 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 > > 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 > 1 > > 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 > 2 > > 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 > 3 > > 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 > 4 > > 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 > 5 > > 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 > 6 > > 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 > 7 > > 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 > 8 > > 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 > 9 > > > > The other looks like : > > > > > test1 > > > > cm 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 > > 38 0 0 1 0 0 0 6 0 0 0 0 0 0 0 0 0 > > 39 0 0 1 0 0 0 0 0 0 0 0 0 6 0 0 0 > > 40 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 > > 41 0 0 2 0 0 0 0 0 0 0 6 0 0 0 0 0 > > 43 0 0 1 0 0 0 4 0 0 0 0 0 0 0 0 0 > > 44 0 0 4 0 0 0 5 0 0 0 0 0 0 0 0 0 > > 45 0 0 2 0 0 0 0 0 0 0 6 0 0 0 0 0 > > 47 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 > > 48 0 0 2 0 0 0 0 0 0 6 0 0 0 0 0 0 > > 49 0 0 2 0 0 0 0 0 0 6 0 0 0 0 0 0 > > 50 0 0 3 0 0 0 0 0 0 3 0 0 0 0 0 0 > > 51 0 0 2 0 0 0 0 0 0 3 0 0 0 0 0 0 > > > > Length of both frames are different ( test2 = 150 and test1 = 70 ) > > The key column is 'cm' > > > > I have tried someting (fill column '3' in test2): > > > > test2 [, '3' ]<- > > ifelse ( test2$'cm' %in% test1$'cm' , test1$'3' , 0) > > > > but the result is wrong. > > > > Any suggestions? > > > > Thanks in advance > > > > > > > version > > _ > > platform i386-pc-mingw32 > > arch i386 > > os mingw32 > > system i386, mingw32 > > status > > major 2 > > minor 0.1 > > year 2004 > > month 11 > > day 15 > > language R > > > > ______________________________________________ > > R-help@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 > > > > ______________________________________________ R-help@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