[R] An R clause to bind dataframes under certain contions
David Winsemius
dwinsemius at comcast.net
Sat Jan 26 22:04:30 CET 2008
"Henrique Dallazuanna" <wwwhsd at gmail.com> wrote in
news:da79af330801261222u51bbe74m3109625b77cd2b77 at mail.gmail.com:
> Try this:
> merge(x, y, all=T)
That will give <NA>'s in the non-matching rows, which may be what the
OP wanted. If, on the otherhand, only the rows with matches were
desired, the usage might be:
A.B <- merge(X, Y, by = c("A","B"))
A.B
mymat<-data.frame(
x=c(1,1,1,2,2,2,3,3,3),
y=c(1,2,3,1,2,3,1,2,3),
z=c(1,2,3,4,5,6,7,8,9))
mymat2<-data.frame(
x=c(1,1,1,2,2,2,3,3,3),
y=c(1,2,3,1,2,3,1,4,3),
zz=c(1,7,3,5,5,6,10,8,20))
mymerge1 <- merge(mymat, mymat2, all=TRUE)
> mymerge1
x y z zz
1 1 1 1 1
2 1 2 2 7
3 1 3 3 3
4 2 1 4 5
5 2 2 5 5
6 2 3 6 6
7 3 1 7 10
8 3 2 8 NA
9 3 3 9 20
10 3 4 NA 8
mymerge2 <- merge(mymat, mymat2, by=c("x","y"))
> mymerge2
x y z zz
1 1 1 1 1
2 1 2 2 7
3 1 3 3 3
4 2 1 4 5
5 2 2 5 5
6 2 3 6 6
7 3 1 7 10
8 3 3 9 20
--
David Winsemius
>
> On 26/01/2008, zhihuali <lzhtom at hotmail.com> wrote:
>>
>> Hi netters,
>> Suppose I have two data frames X and Y. X has three colnames A, B
>> and C. Y has three colnames A,B and D.
>>
>> I want to combine them into one matrix, joining the rows having the
>> same A and B values (X$A==Y$A and X$B = Y$B). So the resulting
>> dataframe has four variables/columns: A,B,C and D.
>>
>> I was wondering what's the best way to do it in R. Could anyone
>> give me some advice?
>>
>> Thanks!
>>
>> Zhihua Li
More information about the R-help
mailing list