[R] Integer / floating point question
Erik Iverson
iverson at biostat.wisc.edu
Fri May 16 16:56:27 CEST 2008
Dear R-help -
I have thought about this question for a bit, and come up with no
satisfactory answer.
Say I have the numeric vector t1, given as
t1 <- c(1.0, 1.5, 2.0, 2.5, 3.0)
I simply want to reliably extract the unique integers from t1, i.e., the
vector c(1, 2, 3). This is of course superficially simple to carry out.
However, my question is related to R FAQ 7.31, "Why doesn't R think
these numbers are equal?" The first sentence of that FAQ reads, "The
only numbers that can be represented exactly in R's numeric type are
integers and fractions whose denominator is a power of 2."
All the methods I've devised to do the above task seem to ultimately
rely on the fact that identical(x.0, x) == TRUE, for integer x.
My assumption, which I'm hoping can be verified, is that, for example,
2.0 (when, say, entered at the prompt and not computed from an
algorithm) is an integer in the sense of FAQ 7.31.
This seems to be the case on my machine.
> identical(2.0, 2)
[1] TRUE
Apologies that this is such a trivial question, it seems so obvious on
the surface, I just want to be sure I am understanding it correctly.
Erik Iverson
iverson at biostat.wisc.edu
sessionInfo()
R version 2.7.0 (2008-04-22)
i686-pc-linux-gnu
locale:
LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=C;LC_MESSAGES=en_US.UTF-8;LC_PAPER=en_US.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.UTF-8;LC_IDENTIFICATION=C
attached base packages:
[1] grDevices datasets tcltk splines graphics utils stats
[8] methods base
other attached packages:
[1] fortunes_1.3-4 debug_1.1.0 mvbutils_1.1.1 SPLOTS_1.3-47
[5] Hmisc_3.4-3 chron_2.3-21 survival_2.34-1 erik_0.0-1
loaded via a namespace (and not attached):
[1] cluster_1.11.10 grid_2.7.0 lattice_0.17-6
More information about the R-help
mailing list