[R] Problems with the sort function!?

Kay Pilz Kay.Pilz at ruhr-uni-bochum.de
Fri Nov 5 14:48:22 CET 2004


Hello All.

I am running R 2.0.0 with a Win XP operating system. The same problem occured
with R 1.9.1 but not with R.1.3.1 on a Win NT computer.

My request is about the following problem with the sort function:

The vector price is a vector of 789 asset prices of the following form,

> mode(price)
[1] "numeric"
> price[1:10]
 [1] 1.1315 1.1314 1.1313 1.1314 1.1315 1.1316 1.1315 1.1317
 [9] 1.1316 1.1316

Then the returns are defined to be the differences,

> ret <- diff(price)
> ret[1:10]
 [1] -1e-04 -1e-04  1e-04  1e-04  1e-04 -1e-04  2e-04 -1e-04
 [9]  0e+00  0e+00

Here R recognizes the first two entries and also the second ones to be equal
(I did not found any two equal entries, where R didnt recognized this
relation),

> ret[1]==ret[2]
[1] TRUE
> ret[3]==ret[4]
[1] TRUE

But after sorting the vector, this ist not longer true,

> s <- sort(ret)
> s[1:10]
 [1] -5e-04 -5e-04 -5e-04 -5e-04 -5e-04 -4e-04 -4e-04 -4e-04
 [9] -4e-04 -4e-04
> s[1]==s[2]
[1] FALSE

Taking the difference of the first two entries yields

> s[1]-s[2]
[1] -2.220446e-16

which seems to be a numerical artefact.

Is this a bug, or just a handling error by me?

Thanks a lot for your answers,
Kay Frederik Pilz
Ruhr-Universitaet Bochum
Germany
Kay.Pilz at rub.de




More information about the R-help mailing list