[R] Peculiar behaviour subtracting from named numeric vector
Rich Grenyer
grenyer at virginia.edu
Tue Oct 18 20:59:41 CEST 2005
Hi - I'm just puzzling over something R's been doing when subtracting a
constant from a named numeric vector. I hope this isn't anything
embarrassingly simple, but I've tried and failed the usual searches.
For the last item in my vector, 40-21=19, but 40-40 = 7.105E-15 . If I
replace the last item of the vector explicitly with 40 (i.e.
goodtimees[21]<-40), then 40-40=0. I presume that this means the last
item in the vector is not 40, but 40 + 7.105E-15. This is possible
(goodtimees is the output of a function in an R addon package - it
should be at the same precision as the input to that function, but
there could be a problem with it, perhaps) but either way, why isn't
the true value showing when the vector is displayed? Is there a more
deep-rooted problem?
Thanks in advance...
Rich
> goodtimees
-1 -2 -3 -4 -5 -6 -7 -8 -28 -48 -93 -96 -152 -163
-164 -167 -168 -169 -177 -188 -189
98.1 86.8 77.9 76.3 70.6 61.1 53.6 51.5 47.5 43.8 41.7 72.3 41.8 65.3
49.4 61.1 54.9 43.0 44.9 53.0 40.0
> str(goodtimees)
Named num [1:21] 98.1 86.8 77.9 76.3 70.6 ...
- attr(*, "names")= chr [1:21] "-1" "-2" "-3" "-4" ...
> goodtimees-21
-1 -2 -3 -4 -5 -6 -7 -8 -28 -48 -93 -96 -152 -163
-164 -167 -168 -169 -177 -188 -189
77.1 65.8 56.9 55.3 49.6 40.1 32.6 30.5 26.5 22.8 20.7 51.3 20.8 44.3
28.4 40.1 33.9 22.0 23.9 32.0 19.0
> goodtimees-40
-1 -2 -3 -4 -5
-6 -7 -8
5.810000e+01 4.680000e+01 3.790000e+01 3.630000e+01 3.060000e+01
2.110000e+01 1.360000e+01 1.150000e+01
-28 -48 -93 -96 -152
-163 -164 -167
7.500000e+00 3.800000e+00 1.700000e+00 3.230000e+01 1.800000e+00
2.530000e+01 9.400000e+00 2.110000e+01
-168 -169 -177 -188 -189
1.490000e+01 3.000000e+00 4.900000e+00 1.300000e+01 7.105427e-15
> version
_
platform powerpc-apple-darwin7.9.0
arch powerpc
os darwin7.9.0
system powerpc, darwin7.9.0
status
major 2
minor 1.1
year 2005
month 06
day 20
language R
--------------------
Rich Grenyer, Ph.D.
Biology Department - University of Virginia
Gilmer Hall
Charlottesville, Virginia
VA 22904
United States of America
tel: (+1) 434 982 5629
fax: (+1) 434 982 5626
http://faculty.virginia.edu/gittleman/rich
More information about the R-help
mailing list