Ivan Calandra
2016-Sep-09 12:53 UTC
[R] Matching/checking for occurence when values are double?
Hi, Not sure, but it seems that your function equal() is exactly what all.equal() does, isn't it? Ivan -- Ivan Calandra, PhD Scientific Mediator University of Reims Champagne-Ardenne GEGENAA - EA 3795 CREA - 2 esplanade Roland Garros 51100 Reims, France +33(0)3 26 77 36 89 ivan.calandra at univ-reims.fr -- https://www.researchgate.net/profile/Ivan_Calandra https://publons.com/author/705639/ Le 09/09/2016 ? 14:47, ruipbarradas at sapo.pt a ?crit :> Hello, > > See FAQ 7.31. > It's irrelevant if you write 100 or 100.0, the values are the same. > The difference would be between 100 (double) and 100L (integer). > To check for equality between floating-point numbers you can use, for > instance, the following function. > > equal <- function(x, y, eps = .Machine$double.eps^0.5) abs(x - y) < eps > > equal(100, 100 + 2e-15) > [1] TRUE > > Hope this helps, > > Rui Barradas > > > > Citando Matti Viljamaa <mviljamaa at kapsi.fi>: > >> I need to pick from a dataset those rows that have a double value set >> to 100. >> However since the values in this column are like the following: >> >> [1] 121.11750 89.36188 115.44320 99.44964 92.74571 107.90180 >> [7] 138.89310 125.14510 81.61953 95.07307 88.57700 94.85971 >> [13] 88.96280 114.11430 100.53410 120.41910 114.42690 >> ? >> >> Then can I match against 100 or 100.0? Or do I need to match against >> 100.00000 or something else? >> >> E.g. does >> >> 100.0 %in% kidmomiq$mom_iq >> >> produce a truthful match result with this kind of data (I?m getting 0 >> occurrences, which might be correct, but I?m not sure)? >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> 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. > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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.
ruipbarradas at sapo.pt
2016-Sep-09 13:31 UTC
[R] Matching/checking for occurence when values are double?
Not exactly, all.equal is much more complete. It accepts all kinds of objects, not just vectors. Rui Barradas Citando Ivan Calandra <ivan.calandra at univ-reims.fr>:> Hi, > > Not sure, but it seems that your function equal() is exactly what > all.equal() does, isn't it? > > Ivan > > -- > Ivan Calandra, PhD > Scientific Mediator > University of Reims Champagne-Ardenne > GEGENAA - EA 3795 > CREA - 2 esplanade Roland Garros > 51100 Reims, France > +33(0)3 26 77 36 89 > ivan.calandra at univ-reims.fr > -- > https://www.researchgate.net/profile/Ivan_Calandra > https://publons.com/author/705639/ > > Le 09/09/2016 ? 14:47, ruipbarradas at sapo.pt a ?crit : >> Hello, >> >> See FAQ 7.31. >> It's irrelevant if you write 100 or 100.0, the values are the same. >> The difference would be between 100 (double) and 100L (integer). >> To check for equality between floating-point numbers you can use, >> for instance, the following function. >> >> equal <- function(x, y, eps = .Machine$double.eps^0.5) abs(x - y) < eps >> >> equal(100, 100 + 2e-15) >> [1] TRUE >> >> Hope this helps, >> >> Rui Barradas >> >> >> >> Citando Matti Viljamaa <mviljamaa at kapsi.fi>: >> >>> I need to pick from a dataset those rows that have a double value >>> set to 100. >>> However since the values in this column are like the following: >>> >>> [1] 121.11750 89.36188 115.44320 99.44964 92.74571 107.90180 >>> [7] 138.89310 125.14510 81.61953 95.07307 88.57700 94.85971 >>> [13] 88.96280 114.11430 100.53410 120.41910 114.42690 >>> ? >>> >>> Then can I match against 100 or 100.0? Or do I need to match >>> against 100.00000 or something else? >>> >>> E.g. does >>> >>> 100.0 %in% kidmomiq$mom_iq >>> >>> produce a truthful match result with this kind of data (I?m >>> getting 0 occurrences, which might be correct, but I?m not sure)? >>> ______________________________________________ >>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >>> 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. >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> 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. > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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.
ruipbarradas at sapo.pt
2016-Sep-10 19:02 UTC
[R] Matching/checking for occurence when values are double?
Actually, there was another reason for the function equal() but I wasn't remembering what. all.equal doesn't recycle its arguments, just see this example. equal <- function(x, y, eps = .Machine$double.eps^0.5) abs(x - y) < eps x <- seq(0, 1, by = 0.2) x == 0.6 all.equal(x, 0.6) equal(x, 0.6) Rui Barradas Citando ruipbarradas at sapo.pt:> Not exactly, all.equal is much more complete. > It accepts all kinds of objects, not just vectors. > > > Rui Barradas > > > Citando Ivan Calandra <ivan.calandra at univ-reims.fr>: > >> Hi, >> >> Not sure, but it seems that your function equal() is exactly what >> all.equal() does, isn't it? >> >> Ivan >> >> -- >> Ivan Calandra, PhD >> Scientific Mediator >> University of Reims Champagne-Ardenne >> GEGENAA - EA 3795 >> CREA - 2 esplanade Roland Garros >> 51100 Reims, France >> +33(0)3 26 77 36 89 >> ivan.calandra at univ-reims.fr >> -- >> https://www.researchgate.net/profile/Ivan_Calandra >> https://publons.com/author/705639/ >> >> Le 09/09/2016 ? 14:47, ruipbarradas at sapo.pt a ?crit : >>> Hello, >>> >>> See FAQ 7.31. >>> It's irrelevant if you write 100 or 100.0, the values are the >>> same. The difference would be between 100 (double) and 100L >>> (integer). >>> To check for equality between floating-point numbers you can use, >>> for instance, the following function. >>> >>> equal <- function(x, y, eps = .Machine$double.eps^0.5) abs(x - y) < eps >>> >>> equal(100, 100 + 2e-15) >>> [1] TRUE >>> >>> Hope this helps, >>> >>> Rui Barradas >>> >>> >>> >>> Citando Matti Viljamaa <mviljamaa at kapsi.fi>: >>> >>>> I need to pick from a dataset those rows that have a double value >>>> set to 100. >>>> However since the values in this column are like the following: >>>> >>>> [1] 121.11750 89.36188 115.44320 99.44964 92.74571 107.90180 >>>> [7] 138.89310 125.14510 81.61953 95.07307 88.57700 94.85971 >>>> [13] 88.96280 114.11430 100.53410 120.41910 114.42690 >>>> ? >>>> >>>> Then can I match against 100 or 100.0? Or do I need to match >>>> against 100.00000 or something else? >>>> >>>> E.g. does >>>> >>>> 100.0 %in% kidmomiq$mom_iq >>>> >>>> produce a truthful match result with this kind of data (I?m >>>> getting 0 occurrences, which might be correct, but I?m not sure)? >>>> ______________________________________________ >>>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >>>> 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. >>> >>> ______________________________________________ >>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >>> 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. >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> 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. > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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.