[R] paired samples, matching rows, merge()

David Winsemius dwinsemius at comcast.net
Fri Aug 20 14:28:24 CEST 2010


On Aug 20, 2010, at 6:44 AM, Cecilia Carmo wrote:

> Hi everyone!
>
> I'm matching two samples to create one sample that have
> pairs of observations equal for the k1 variable. Merge() doesn't  
> work because I dont't want to recycle the values.

When there is more than one possible match in either y or x to a  
possible match on k1 in the othr set of values, is there some rule  
that lets you determine which one should be chosen. Your offered  
solution suggests that you think the order in the original data.frams  
is a proper rule, but why should we believe that rule is anything  
other than convenience?

-- 
David.
>
> x <- data.frame(k1=c(1,1,2,3,3,5), k2=c(20,21,22,23,24,25))
> x
> y <- data.frame(k1=c(1,1,2,2,3,4,5,5), k2=c(10,11,12,13,14,15,16,17))
> y
> merge(x,y,by="k1")
>  k1 k2.x k2.y
> 1   1   20   10
> 2   1   20   11
> 3   1   21   10
> 4   1   21   11
> 5   2   22   12
> 6   2   22   13
> 7   3   23   14
> 8   3   24   14
> 9   5   25   16
> 10  5   25   17
>
> I have a final dataframe with 10 rows, but I want it with 5 rows,  
> like this:
>  k1 k2.x k2.y
> 1   1   20   10
> 2   1   21   11
> 3   2   22   12
> 4   3   23   14
> 5   5   25   16
>
> Thanks for any help.
>
> Cecília Carmo
> (Universidade de Aveiro)

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list