Kurt, Uwe suggested I write to you as maintainer of chron ... at the start of is.weekend, in the check on the argument type, maybe just change chron() to as.chron()? This would ensure as.chron.POSIXt gets called on POSIXt arguments, and (I think) fixes the problem. I tested and it seems ok. No warning/error required.> is.weekendfunction(x) { if(!inherits(x, "dates")) if(is.character(x) || is.numeric(x)) x <- as.chron(x) # was x <- chron(x) else stop("x must inherit from dates") .... } -----Original Message----- From: Uwe Ligges [mailto:ligges at statistik.uni-dortmund.de] Sent: 26 May 2004 13:20 To: Matthew Dowle Cc: 'r-help at stat.math.ethz.ch' Subject: Re: [R] is.weekend() odd behaviour Matthew Dowle wrote:> Thanks. When is.weekend() is given an object it doesn't know about, > could a warning or error be added? At the moment, I think you're > agreeing, that it silently returns a random TRUE/FALSE.It's not random, it depends on the value of Sys.time(), which also includes seconds ..... I agree that a warning or error might be sensible. So I think you are about to write a note to the maintainer of package "chron" including patches for is.weekend() and friends? Uwe Ligges> -----Original Message----- > From: Uwe Ligges [mailto:ligges at statistik.uni-dortmund.de] > Sent: 26 May 2004 11:55 > To: Matthew Dowle > Cc: 'r-help at stat.math.ethz.ch' > Subject: Re: [R] is.weekend() odd behaviour > > > Matthew Dowle wrote: > > >>It seems is.weekend() is unsure ? > > > It is completely sure, if an object is given is.weekend() knows about > as in: > > table(is.weekend(sapply(1:100, > function(i){Sys.sleep(0.05);as.chron(Sys.time())}))) > > (note the as.chron() call!) > > Uwe Ligges > > > > >># Start R 1.9.0 with --vanilla on windows xp >># load package chron >> >> >> >>>table(is.weekend(sapply(1:100, >>>function(i){Sys.sleep(0.05);Sys.time()}))) >> >>FALSE TRUE >> 68 32 >> >> >>>date() >> >>[1] "Wed May 26 11:18:56 2004" >> >> >> >>>version _ >> >>platform i386-pc-mingw32 >>arch i386 >>os mingw32 >>system i386, mingw32 >>status >>major 1 >>minor 9.0 >>year 2004 >>month 04 >>day 12 >>language R >> >> >> >> [[alternative HTML version deleted]] >> >>______________________________________________ >>R-help at stat.math.ethz.ch mailing list >>https://www.stat.math.ethz.ch/mailman/listinfo/r-help >>PLEASE do read the posting guide! >>http://www.R-project.org/posting-guide.html
I think the user should be forced to convert explicitly from POSIXct to chron before is.weekend is used. That way the user will know for sure what time zone he is converting with respect to. Having it done silently will just cause subtle errors. IMHO the correct functionality is to give an error message if the user attempts to provide a POSIXct date. Matthew Dowle <mdowle <at> concordiafunds.com> writes: : : Kurt, : : Uwe suggested I write to you as maintainer of chron ... at the start of : is.weekend, in the check on the argument type, maybe just change chron() to : as.chron()? This would ensure as.chron.POSIXt gets called on POSIXt : arguments, and (I think) fixes the problem. I tested and it seems ok. No : warning/error required. : : > is.weekend : function(x) : { : if(!inherits(x, "dates")) : if(is.character(x) || is.numeric(x)) : x <- as.chron(x) # was x <- chron(x) : else stop("x must inherit from dates") : .... : } : : -----Original Message----- : From: Uwe Ligges [mailto:ligges <at> statistik.uni-dortmund.de] : Sent: 26 May 2004 13:20 : To: Matthew Dowle : Cc: 'r-help <at> stat.math.ethz.ch' : Subject: Re: [R] is.weekend() odd behaviour : : : Matthew Dowle wrote: : : > Thanks. When is.weekend() is given an object it doesn't know about, : > could a warning or error be added? At the moment, I think you're : > agreeing, that it silently returns a random TRUE/FALSE. : : It's not random, it depends on the value of Sys.time(), which also : includes seconds ..... : I agree that a warning or error might be sensible. So I think you are : about to write a note to the maintainer of package "chron" including : patches for is.weekend() and friends? : : Uwe Ligges : : : > -----Original Message----- : > From: Uwe Ligges [mailto:ligges <at> statistik.uni-dortmund.de] : > Sent: 26 May 2004 11:55 : > To: Matthew Dowle : > Cc: 'r-help <at> stat.math.ethz.ch' : > Subject: Re: [R] is.weekend() odd behaviour : > : > : > Matthew Dowle wrote: : > : > : >>It seems is.weekend() is unsure ? : > : > : > It is completely sure, if an object is given is.weekend() knows about : > as in: : > : > table(is.weekend(sapply(1:100, : > function(i){Sys.sleep(0.05);as.chron(Sys.time())}))) : > : > (note the as.chron() call!) : > : > Uwe Ligges : > : > : > : > : >># Start R 1.9.0 with --vanilla on windows xp : >># load package chron : >> : >> : >> : >>>table(is.weekend(sapply(1:100, : >>>function(i){Sys.sleep(0.05);Sys.time()}))) : >> : >>FALSE TRUE : >> 68 32 : >> : >> : >>>date() : >> : >>[1] "Wed May 26 11:18:56 2004" : >> : >> : >> : >>>version _ : >> : >>platform i386-pc-mingw32 : >>arch i386 : >>os mingw32 : >>system i386, mingw32 : >>status : >>major 1 : >>minor 9.0 : >>year 2004 : >>month 04 : >>day 12 : >>language R