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

Cecilia Carmo cecilia.carmo at ua.pt
Fri Aug 20 12:44:53 CEST 2010


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.

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)



More information about the R-help mailing list