[R] strange behaviour when subsetting a data.frame

Doran, Harold HDoran at air.org
Thu Nov 7 17:52:00 CET 2013


Yes, but notice that

man2[3,] == .3
[1] FALSE

This is because of issues of machine precision when dealing with floating points, not a problem in R.  Comparisons for nearly equivalent numbers are done using all.equal() as shown below.

> all.equal(man2[3,], .3)
[1] TRUE




-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Eckstädt, Elisabeth
Sent: Thursday, November 07, 2013 8:37 AM
To: r-help at R-project.org
Subject: [R] strange behaviour when subsetting a data.frame

Hello everyone,
I am experiencing a unfathomable benaviour of "subset" on a data.frame. This is a minimal reproducable example. The data.frame cosists only of one column, which contains 10 ascending values (from 0.1 to 1). Subsetting for 0.1 is working (gives me one row), subsetting for 0.3 gives me zero rows? Doing the same with values from 1 to 10 is working out well (as expected). 

Beimischung=seq(0.1,1,0.1)
man2=data.frame(Beimischung)
subset(man2, Beimischung==0.3)
#---> gives 0 rows
subset(man2, Beimischung==0.1)
---> gives one row (as expected)#

#also not working:

man2$Beimischung3=man2$Beimischung*10
subset(man2, Beimischung3==3)
--> gives 0 rows

Does anybody have a clue for me?
Thanks in advance
Regards
Elisabeth
_______________
Dipl.-Ing. Elisabeth Eckstädt
Member of Academic Staff & PhD Student
Technische Universität Dresden
Faculty of Mechanical Engineering
Institue of Power Engineering
Chair of Building Energy Systems and Heat Supply

Phone +49 351 463 34709
Fax +49 351 463 37076
Web http://tu-dresden.de/mw/iet/ew

______________________________________________
R-help at 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.



More information about the R-help mailing list