[R] help for the first poster- a simple question
Xuejun Qin
xjq at chg.duhs.duke.edu
Mon Mar 3 20:12:34 CET 2008
Thanks for all response. Here is more closer to my question,
p<-0.05
f<-0.05
ld<-sqrt(f* (1 - f) * p * (1 - p))
D <- (p * (1 - f) - ld)/p
d <- ((1 - p) * f - ld)/(1 - p)
haplo<-data.frame(D,d)
> haplo
D d
1 -1.387779e-16 -7.304099e-18
cond1<-pmin(haplo[,1],haplo[,2])
haplo[cond1>=0,]
But the program cannot get right one, because
-1.387779e-16>=0 is FALSE
-7.304099e-18>=0 is FALSE
Thank you!
xj.
----- Original Message -----
From: "Gavin Simpson" <gavin.simpson at ucl.ac.uk>
To: "Xuejun Qin" <xjq at chg.duhs.duke.edu>
Cc: <r-help at r-project.org>
Sent: Monday, March 03, 2008 12:57 PM
Subject: Re: [R] help for the first poster- a simple question
> On Mon, 2008-03-03 at 12:52 -0500, Xuejun Qin wrote:
>> Hi, there,
>> I cannot get accurate value for calculation.
>> for example:
>> ld<-
>> 0.05*0.95-ld=-6.938894e-18
>> 0.05*0.95-ld==0 is False.
>>
>> I met this problem in my program, how can I handle it. Thanks.
>
> Answer 1:
>
> Read FAQ 7.31 -
>
> http://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-doesn_0027t-R-think-these-numbers-are-equal_003f
>
> Answer 2:
>
> Use all.equal()
>
>> ld<-sqrt(1*0.05*0.95*0.05*0.95)
>> 0.05*0.95-ld
> [1] -6.938894e-18
>> 0.05*0.95-ld==0
> [1] FALSE
>> all.equal(0.05*0.95-ld, 0)
> [1] TRUE
>
>>
>>
>> xj.
>
> HTH
>
> G
> --
> %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
> Dr. Gavin Simpson [t] +44 (0)20 7679 0522
> ECRC, UCL Geography, [f] +44 (0)20 7679 0565
> Pearson Building, [e] gavin.simpsonATNOSPAMucl.ac.uk
> Gower Street, London [w] http://www.ucl.ac.uk/~ucfagls/
> UK. WC1E 6BT. [w] http://www.freshwaters.org.uk
> %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
>
>
More information about the R-help
mailing list