On Nov 13, 2016 13:54, "Henrik Bengtsson" <henrik.bengts...@gmail.com> wrote: > > It looks like a bug. I don't think c.Date() is every called, because: > > > trace(c.Date, tracer = quote(message("c.Date() called"))) > Tracing function "c.Date" in package "base" > [1] "c.Date" > > Tracing works: > > > c(as.Date(10000L), as.Date(10001L)) > Tracing c.Date(as.Date(10000L), as.Date(10001L)) on entry > c.Date() called > [1] "1997-05-19" "1997-05-20" > > but c.Date() is not called here: > > > x <- foreach(i=10000:10100, .combine = function(...) c(...)) %do% { as.Date(i) } > > str(x) > num [1:101] 10000 10001 10002 10003 10004 ...
Cut'n'paste error above. It is x <- foreach(i=10000:10100, .combine = "c") %do% { as.Date(i) } that doesn't call c.Date(). Same if you try with .combine = c. > > > The following hack works: > > > library("foreach") > > library("zoo") > > x <- foreach(i=10000:10100, .combine = function(...) c(...)) %do% { as.Date(i) } > > str(x) > Date[1:101], format: "1997-05-19" "1997-05-20" "1997-05-21" "1997-05-22" ... > > Alternatively, one can use append() which works like c() if no other > arguments are specified: > > > x <- foreach(i=10000:10100, .combine = append) %do% { as.Date(i) } > > str(x) > Date[1:101], format: "1997-05-19" "1997-05-20" "1997-05-21" "1997-05-22" ... > > It looks like foreach is treating the .combine = c case specially and > someone fail to properly dispatch c() on the object (or something). > > /Henrik > > > On Sun, Nov 13, 2016 at 7:14 AM, James Hirschorn > <james.hirsch...@hotmail.com> wrote: > > I'm still not clear about whether this is a bug in foreach. Should c.Date be invoked by foreach with .combine='c'? > > > > On 11/06/2016 07:02 PM, William Dunlap wrote: > > Note that in the OP's example c.Date is never invoked. c.Date is called if .combine > > calls c rather than if .combine is c: > > > >> library(zoo) > >> trace(c.Date, quote(print(sys.call()))) > > Tracing function "c.Date" in package "base" > > [1] "c.Date" > >> foreach(i=10000:10003, .combine=c) %do% { as.Date(i) } > > [1] 10000 10001 10002 10003 > >> foreach(i=10000:10003, .combine=function(...)c(...)) %do% { as.Date(i) } > > Tracing c.Date(...) on entry > > eval(expr, envir, enclos) > > Tracing c.Date(...) on entry > > eval(expr, envir, enclos) > > Tracing c.Date(...) on entry > > eval(expr, envir, enclos) > > [1] "1997-05-19" "1997-05-20" "1997-05-21" "1997-05-22" > > > > > > Bill Dunlap > > TIBCO Software > > wdunlap tibco.com<http://tibco.com> > > > > On Sun, Nov 6, 2016 at 2:20 PM, Duncan Murdoch <murdoch.dun...@gmail.com <mailto:murdoch.dun...@gmail.com>> wrote: > > On 06/11/2016 5:02 PM, Jim Lemon wrote: > > hi James, > > I think you have to have a starting date ("origin") for as.Date to > > convert numbers to dates. > > > > That's true with the function in the base package, but the zoo package also has an as.Date() function, which defaults the origin to "1970-01-01". If James is using zoo his code would be okay. If he's not, he would have got an error, so I think he must have been. > > > > Duncan Murdoch > > > > > > > > Jim > > > > On Sun, Nov 6, 2016 at 12:10 PM, James Hirschorn > > <james.hirsch...@hotmail.com<mailto:james.hirsch...@hotmail.com>> wrote: > > This seemed odd so I wanted to check: > > > > > x <- foreach(i=10000:10100, .combine='c') %do% { as.Date(i) } > > > > yields a numeric vector for x: > > > > > class(x) > > [1] "numeric" > > > > Should it not be a vector of Date? > > > > ______________________________________________ > > R-help@r-project.org<mailto:R-help@r-project.org> mailing list -- To UNSUBSCRIBE and more, see > > 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<mailto:R-help@r-project.org> mailing list -- To UNSUBSCRIBE and more, see > > 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<mailto:R-help@r-project.org> mailing list -- To UNSUBSCRIBE and more, see > > 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. > > > > > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > > 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. Henrik [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.