[R] different results by re-ordering vector: bug?
Carlos Soares
csoares at liacc.up.pt
Fri Dec 26 20:32:42 CET 2003
Dear R users,
I obtain the following behavior which I cannot understand. Given a file
mydata with the following numbers:
0.171409662475182
0.15817339510258108
0.32230311052283256
0.14890800794176043
0.17074784910655194
0.16611515552614162
0.41
0.16611515552614162
0.41760423560555926
0.11978821972203839
I read the data and perform some calculations:
a <- 1-read.table("mydata")$V1
m <- outer(a, a, "/")
diag(m) <- NA
mean.row <- apply(m, 1, mean, na.rm=TRUE)
which yield the same value for indices 6 and 8 of mean.row, as would be
expected because values 6 and 8 of the original vector are the same:
> mean.row[6]==mean.row[8]
[1] TRUE
However, if I reorder the values as follows:
a <- 1-read.table("mydata")$V1[c(10,2,8,9,7,3,1,4,5,6)]
and repeat the calculations:
m <- outer(a, a, "/")
diag(m) <- NA
mean.row <- apply(m, 1, mean, na.rm=TRUE)
mean.row[6]==mean.row[8]
The values for indices 10 and 3 of mean.row, which correspond to 6 and 8
in the previous calculations, are not the same anymore:
> mean.row[10]==mean.row[3]
[1] FALSE
I understand that limited precision causes "incorrect" results but I
wouldn't expect ordering operations to do the same. I couldn't find any
information in the site about this. Maybe it's a bug with my version:
> R.version
_
platform i686-pc-linux-gnu
arch i686
os linux-gnu
system i686, linux-gnu
status
major 1
minor 7.0
year 2003
month 04
day 16
language R
Thanks and best regards,
Carlos
More information about the R-help
mailing list