On 11-06-05 8:23 AM, Denis Chabot wrote:
Hi,

I was "losing" my dates in a script and upon inspection, found that my recent switch from separate 
"if" and "else" to "ifelse" was the cause. But why?

See ?ifelse. The class of the result is the same as the class of the test, not the classes of the alternatives. You need to manually attach the class again, or use a different construction.

Duncan Murdoch


my.date = as.POSIXct("2011-06-04 08:00:00")
default.date = seq(as.POSIXct("2011-01-01 08:00:00"), as.POSIXct("2011-09-01 
08:00:00"), length=15)
x = 4 * 60 * 60
(my.date + x)
(min(default.date) + x)
(new.date = ifelse(!is.na(my.date), my.date + x, min(default.date) + x) )

(if(!is.na(my.date)) new.date2 = my.date + x  else new.date2= min(default.date) 
+ x     )

On my machine, new.date is "numeric" whereas new.date2 is "POSIXct" and 
"POSIXt", as desired.

sessionInfo()
R version 2.13.0 (2011-04-13)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)

locale:
[1] fr_CA.UTF-8/fr_CA.UTF-8/C/C/fr_CA.UTF-8/fr_CA.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base


Thanks in advance,

Denis
______________________________________________
R-help@r-project.org 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.

______________________________________________
R-help@r-project.org 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.

Reply via email to