In addition to reading Frequently Asked Questions Section 7.31, you
should always run your own code before posting. Yours does not work.
Spend some time reading one or more of the R tutorials and learn
about vectorization. It will save you time and typing. There are
many to choose from at

http://cran.r-project.org/other-docs.html

Do not try to match decimal values. Instead create an index value
that is a character string. Then you can match the character
strings:

> dat1<-data.frame(x=c(1.0,1.2,3.2,4.0,5.1),y=c(23,17,12,27,8))
> dat2 <- data.frame(x=seq(0.1,6,by=0.1),y=rep(0,60)) # Errors in
your code corrected here
> dat1$xc <- sprintf("%1.1f", dat1$x, 1) # Create dat1 index value
as character
> dat2$xc <- sprintf("%1.1f", dat2$x, 1) # Create dat2 index value
as character
> dat2[match(dat1$xc, dat2$xc),] <- dat1 # update dat2 with dat1
> dat2[dat2$y>0,] # Check the results
     x  y  xc
10 1.0 23 1.0
12 1.2 17 1.2
32 3.2 12 3.2
40 4.0 27 4.0
51 5.1  8 5.1
> dat1
    x  y  xc
1 1.0 23 1.0
2 1.2 17 1.2
3 3.2 12 3.2
4 4.0 27 4.0
5 5.1  8 5.1

-------------------------------------
David L Carlson
Associate Professor of Anthropology
Texas A&M University
College Station, TX 77840-4352


-----Original Message-----
From: r-help-boun...@r-project.org
[mailto:r-help-boun...@r-project.org] On Behalf Of jim holtman
Sent: Wednesday, July 3, 2013 7:22 AM
To: André de Boer
Cc: R mailing list
Subject: Re: [R] merge dataframes

FAQ 7.31


On Wed, Jul 3, 2013 at 7:55 AM, Andri de Boer <rnie...@gmail.com>
wrote:

> Hello,
>
> I have two dataframes:
> dat1<-data.frame(x=c(1.0,1.2,3.2,4.0,5.1),y=c(23,17,12,27,8))
> dat2<-data.frame(x=seq(0,6,by=0.1),y=rep(0,60)))
>
> I want to replace the corresponding rows of dat2 with the ones of
dat1.
> I tried:
>
> for(i in 1:nrow(dat1))
> {
>   dat2[dat2$x==dat1[i,1],2]<-dat1[i,2]
> }
>
> But I discovered that not every 5.1 is equal:
>
> > dat2[52,1][1] 5.1> dat1[5,1][1] 5.1> dat2[52,1]==dat1[5,1][1]
FALSE
>
>
>
> How to solve this?
>
>
>
> Regards,
>
> Andri
>
>         [[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
Data Munger Guru

What is the problem that you are trying to solve?
Tell me what you want to do, not how you want to do it.

        [[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.

Reply via email to