On second glance, while it works for 'stack', it doesn't appear to work for 'overlay':
> overlay(sapply(obs,get)) Error in function (classes, fdef, mtable) : unable to find an inherited method for function "overlay", for signature "list", "missing" At this point, this may be more of a 'raster' issue for the R-Sig-Geo list... On Nov 16, 2010, at 7:09 PM, Kevin Ummel wrote: > Thanks, David. That does, indeed, work. It didn't occur to me that a list > would do the job as an argument. > > Thanks for the fix! > > kevin > > > On Nov 16, 2010, at 6:58 PM, David Winsemius wrote: > >> >> On Nov 16, 2010, at 1:04 PM, Kevin Ummel wrote: >> >>> Sorry, I shouldn't have used 'sum' as an example; I am looking for a >>> solution in the case of functions that do not result in simple vectors or >>> matrices. >>> >>> The "real-world" example is something like the following using the 'raster' >>> package, though (I think) any command producing an S4 object could be a >>> candidate: >>> >>> r1 <- raster(system.file("external/test.grd", package="raster"))*1 >>> r2 <- raster(system.file("external/test.grd", package="raster"))*2 >>> >>> obs=objects(pattern=glob2rx("r?")) >>> >>> #Would like to generate the equivalent of... >>> >>> stack(r1,r2) >> >> Have you tried what would seem to be the obvious generalization of the >> example offered: >> >> str(stack(sapply(obs, get))) # it does not throw any error and seems to >> have data in it >> >>> >>> ...using a variation of obs as an argument to 'stack' (potentially very >>> long). >> >> Also tested: >> >> str( >> stack( c(sapply(obs, get),sapply(obs, get)) ) # doing a four object test >> ) # no error >> >> (I did not see any indication in the help page for get that it's operation >> was restricted to S3 objects. If there is such a restriction then warnings >> should be added there.) >> >> >>> >>> Cheers, >>> Kevin >>> >>> >>> On Nov 16, 2010, at 5:07 PM, David Winsemius wrote: >>> >>>> >>>> On Nov 16, 2010, at 10:34 AM, Kevin Ummel wrote: >>>> >>>>> A bit embarrassed to post this seemingly trivial question, but I can't >>>>> find anything in the archive that's quite relevant: >>>>> >>>>> a1=1 >>>>> a2=2 >>>>> >>>>> obs=objects(pattern=glob2rx("a?")) >>>>> >>>>> I want to utilize 'obs' as a function argument to produce something like: >>>>> >>>>> sum(a1,a2) >>>>> >>>> >>>> ?get >>>>> sum(sapply(obs, get)) >>>> [1] 3 >>>> >>>> >>>>> Obviously, sum(obs) doesn't work, but I've tried variations of 'eval', >>>>> 'parse', 'mget', and 'noquote' without success. What am I missing? >>>>> >>>>> Thanks, >>>>> Kevin >>>>> >>>> -- >>>> David Winsemius, MD >>>> West Hartford, CT >>>> >>> >> >> David Winsemius, MD >> West Hartford, CT >> > ______________________________________________ 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.