try this: > merge(df1, df2, by.x='codetot',by.y='codetoto', all=TRUE) codetot popcode.x p3need popcode.y areasec 1 BCPy01-01-1 BCPy01-01 100.0000 BCPy01-01 0.5089434 2 BCPy01-01-2 BCPy01-01 100.0000 BCPy01-01 0.6246381 3 BCPy01-01-3 BCPy01-01 100.0000 BCPy01-01 0.4370059 4 BCPy01-02-1 BCPy01-02 92.5926 BCPy01-02 0.9253052 5 BCPy01-02-1 BCPy01-02 92.5926 BCPy01-02 0.6011810 6 BCPy01-02-1 BCPy01-02 100.0000 BCPy01-02 0.9253052 7 BCPy01-02-1 BCPy01-02 100.0000 BCPy01-02 0.6011810 8 BCPy01-02-2 BCPy01-02 92.5926 BCPy01-02 0.6710850 9 BCPy01-02-2 BCPy01-02 92.5926 BCPy01-02 0.7145839 10 BCPy01-02-2 BCPy01-02 100.0000 BCPy01-02 0.6710850 11 BCPy01-02-2 BCPy01-02 100.0000 BCPy01-02 0.7145839 12 BCPy01-02-3 BCPy01-02 92.5926 BCPy01-02 0.9515256 13 BCPy01-02-3 BCPy01-02 92.5926 BCPy01-02 0.6555006 14 BCPy01-02-3 BCPy01-02 100.0000 BCPy01-02 0.9515256 15 BCPy01-02-3 BCPy01-02 100.0000 BCPy01-02 0.6555006 16 BCPy01-03-1 BCPy01-03 100.0000 BCPy01-03 0.8683875 >
On Thu, Apr 9, 2009 at 7:19 AM, Mao Jianfeng <jianfeng....@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. > -- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve? ______________________________________________ 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.