Re: [R] Odd behaviour of R

From: Roger Bivand <Roger.Bivand_at_nhh.no>
Date: Fri 18 Aug 2006 - 19:02:57 EST


On Fri, 18 Aug 2006, Hiroto Miyoshi wrote:

> Dear R-users
>
> I need your help. I am agonised by the odd behaviour of R
> described below
>
> In the following program, data.frame "work" contains no rows,
> when Pb set to 0.3 and 0.7
>
> data<-read.csv("output.csv",header=TRUE)
> for(N in c(20,40,80,160,320,640,1280)){
> for(Pb in seq(0.1,0.9,0.1)){
> work<-data[((data$N==N) & (data$Pb==Pb)),]
> print(work)
> }
> }
>
> That is, when Pb set to 0.3 and 0.7,
> print(work) prints out the message "[1] N Pb a
> b c d outcomeA outcomeB <0 rows> (or 0-length row.names)"
>
> However, data does exist when Pb is 0.3 or 0.7.

This looks suspiciously like FAQ 7.31:

http://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-doesn_0027t-R-think-these-numbers-are-equal_003f

and suggests that all.equal() may be a better test than "==" for an appropriate value of tolerance:

print(seq(0.1,0.9,0.1), 20)
seq(0.1,0.9,0.1)[7]==0.7
all.equal(seq(0.1,0.9,0.1)[7], 0.7)

> And
> when line "work<-data[((data$N==N) & (data$Pb==Pb)),]"
> is placed outside the "for" loops after Pb is manually set to 0.3,
> print(work) successfully prints out the appropriate data.
> Namely,
>
> > N<-20
> > Pb<-0.3
> > work<-data[((data$N==N) & (data$Pb==Pb)),]
> > work
> N Pb a b c d outcomeA outcomeB
> 22 20 0.3 6 0 0 14 FALSE FALSE
> 23 20 0.3 5 1 0 14 FALSE FALSE
> 24 20 0.3 5 1 1 13 FALSE FALSE
> ...................................................................
>
> Why is this happen?
> I am using R version 2.3.0.
> Any help is greatly appreciated.
>
> Thank you.
>
>
> ------------------------
> Hiroto Miyoshi
> h_m_@po.harenet.ne.jp
>
> ______________________________________________
> R-help@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

-- 
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: Roger.Bivand@nhh.no

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Received on Fri Aug 18 19:02:57 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Fri 18 Aug 2006 - 20:19:44 EST.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.