-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf
Of Jeff Newmiller
Sent: Tuesday, May 07, 2013 12:10 AM
To: jpm miao; r-help
Subject: Re: [R] Merge two dataframe with "by", and problems with the common field
Either d1$a and d2$a are always the same, or they are not.
If they are already the same, you can either omit one of them in the merge:
merge(d1, d2[,-2], by="b")
or you can use a set of columns for your by:
merge(d1,d2, by=c("a","b"))
If the "a" columns are distinct, then at least one of them needs a new name in the
merged table, and the simplest option is to rename the columns appropriately in d1 and
d2 (since they apparently represent different data anyway).
---------------------------------------------------------------------------
Jeff Newmiller The ..... ..... Go Live...
DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go...
Live: OO#.. Dead: OO#.. Playing
Research Engineer (Solar/Batteries O.O#. #.O#. with
/Software/Embedded Controllers) .OO#. .OO#. rocks...1k
---------------------------------------------------------------------------
Sent from my phone. Please excuse my brevity.
jpm miao <miaojpm at gmail.com> wrote:
Hi,
From time to time I merge two dataframes with possibly a common field.
Then the common field is no longer present,but what are present
fieldname.x
and fieldname.y. How can I fix the problem so that I can still call by
the
orignal fieldname? If you don't understand my problem, please see the
example below.
Thanks
Miao
a b c
1 1 4 5
2 2 5 6
3 3 6 7
d a f b
1 6 1 8 4
2 7 2 9 5
3 8 3 10 6
d3<-merge(d1, d2, by="b")
d3
b a.x c d a.y f
1 4 1 5 6 1 8
2 5 2 6 7 2 9
3 6 3 7 8 3 10
Error in `[.data.frame`(d3, "a") : undefined columns selected
a.x
1 1
2 2
3 3
[[alternative HTML version deleted]]