I would suggest use the same column names for the common columns. Say, use
"codetot" for both df1 and df2. Then you don't even have to specify by.x or
by.y, merge will do it automatically.

merge(df1,df2, all=TRUE).
Otherwise you have to
merge(df1,df2,by.x=c('popcode','codetot'),by.y=c('popcode','codetoto'),all=TRUE)

They both produce

     popcode     codetot   p3need   areasec
1  BCPy01-01 BCPy01-01-1      100 0.5089434
2  BCPy01-01 BCPy01-01-2      100 0.6246381
3  BCPy01-01 BCPy01-01-3      100 0.4370059
4  BCPy01-02 BCPy01-02-1  92.5926 0.9253052
5  BCPy01-02 BCPy01-02-1  92.5926 0.6011810
6  BCPy01-02 BCPy01-02-1      100 0.9253052
7  BCPy01-02 BCPy01-02-1      100 0.6011810
8  BCPy01-02 BCPy01-02-2  92.5926 0.6710850
9  BCPy01-02 BCPy01-02-2  92.5926 0.7145839
10 BCPy01-02 BCPy01-02-2      100 0.6710850
11 BCPy01-02 BCPy01-02-2      100 0.7145839
12 BCPy01-02 BCPy01-02-3  92.5926 0.9515256
13 BCPy01-02 BCPy01-02-3  92.5926 0.6555006
14 BCPy01-02 BCPy01-02-3      100 0.9515256
15 BCPy01-02 BCPy01-02-3      100 0.6555006
16 BCPy01-03 BCPy01-03-1      100 0.8683875


On Thu, Apr 9, 2009 at 6:19 AM, Mao Jianfeng <jianfeng.mao@gmail.com> wrote:

> Hi, R-listers,
>
> Failed, when I tried to merge df1 and df2 by "codetot" in df1 and
> "codetoto"
> in df2. I want to know the reason and how to merge them together. Data
> frames and codes I have used were listed as followed. Thanks a lot in
> advance.
>
> df1:
> popcode     codetot   p3need
> BCPy01-01 BCPy01-01-1 100.0000
> BCPy01-01 BCPy01-01-2 100.0000
> BCPy01-01 BCPy01-01-3 100.0000
> BCPy01-02 BCPy01-02-1  92.5926
> BCPy01-02 BCPy01-02-1 100.0000
> BCPy01-02 BCPy01-02-2  92.5926
> BCPy01-02 BCPy01-02-2 100.0000
> BCPy01-02 BCPy01-02-3  92.5926
> BCPy01-02 BCPy01-02-3 100.0000
> BCPy01-03 BCPy01-03-1 100.0000
>
> df2:
> popcode    codetoto   areasec
> BCPy01-01 BCPy01-01-1 0.5089434
> BCPy01-01 BCPy01-01-2 0.6246381
> BCPy01-01 BCPy01-01-3 0.4370059
> BCPy01-02 BCPy01-02-1 0.9253052
> BCPy01-02 BCPy01-02-1 0.6011810
> BCPy01-02 BCPy01-02-2 0.6710850
> BCPy01-02 BCPy01-02-2 0.7145839
> BCPy01-02 BCPy01-02-3 0.9515256
> BCPy01-02 BCPy01-02-3 0.6555006
> BCPy01-03 BCPy01-03-1 0.8683875
>
> code:
> new1<-merge(df1,df2,by=c("popcode","popcode"),all=T) # It is processed
> well.
> But, it is not what I want.
> new2<-merge(df1,df2,by=c("codetot","codetoto"),all=T) # this one failed. I
> exactly want to do that.
>
> Mao J-F
> IBCAS, AC
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



-- 
Jun Shen PhD
PK/PD Scientist
BioPharma Services
Millipore Corporation
15 Research Park Dr.
St Charles, MO 63304
Direct: 636-720-1589

	[[alternative HTML version deleted]]


