[R] cbind for list of zoo objects
Joshua Ulrich
josh.m.ulrich at gmail.com
Tue Apr 9 15:07:06 CEST 2013
On Tue, Apr 9, 2013 at 7:31 AM, Harry Mamaysky <h.mamaysky at gmail.com> wrote:
> Thanks for the explanations.
>
> Wouldn't the following bit of checking in do.call() make it easier to figure such things out in the future?
>
Sure, it would have helped you figure out your issue, but you don't
want a *warning* when you purposefully try to set named function
arguments. I.e., what if you want to set a function argument to
something other than its default value? Do you really want a warning
when you do that?
>
> my.call <- function(what,args,...) {
>
> ## Get the name of the function to call.
> if (!is.character(what))
> whatStr <- deparse(substitute(what))
> else
> whatStr <- what
>
> callFctn <- paste0(gsub(paste0('.',class(args[[1]])),'',whatStr), '.', class(args[[1]]))
>
> ## Check whether list names are arguments to the function.
> if ( any( names(args) %in% names(formals(callFctn)) ) )
> warning( 'Element of "args" is also an argument for ', callFctn, '.' )
>
> ## Do the actual call.
> do.call( what, args, ... )
> }
>
> Sent from my iPhone
>
> On Apr 8, 2013, at 7:23 PM, Gabor Grothendieck <ggrothendieck at gmail.com> wrote:
>
> On Mon, Apr 8, 2013 at 3:54 PM, Harry Mamaysky <h.mamaysky at gmail.com> wrote:
>> Can someone explain why this happens when one of the list elements is named 'all'?
>>
>>> zz <- list( zoo(1:10,1:10), zoo(101:110,1:10), zoo(201:210,1:10) )
>>> names(zz)<-c('test','bar','foo')
>>> do.call(cbind,zz)
>> test bar foo
>> 1 1 101 201
>> 2 2 102 202
>> 3 3 103 203
>> 4 4 104 204
>> 5 5 105 205
>> 6 6 106 206
>> 7 7 107 207
>> 8 8 108 208
>> 9 9 109 209
>> 10 10 110 210
>>> names(zz)<-c('test','all','foo')
>>> do.call(cbind,zz)
>> test foo
>> 1 1 201
>> 2 2 202
>> 3 3 203
>> 4 4 204
>> 5 5 205
>> 6 6 206
>> 7 7 207
>> 8 8 208
>> 9 9 209
>> 10 10 210
>
> all= is an argument to cbind.zoo so it cannot be used as a column name.
>
>> args(zoo:::cbind.zoo)
> function (..., all = TRUE, fill = NA, suffixes = NULL, drop = FALSE)
> NULL
>
> --
> Statistics & Software Consulting
> GKX Group, GKX Associates Inc.
> tel: 1-877-GKX-GROUP
> email: ggrothendieck at gmail.com
>
--
Joshua Ulrich | about.me/joshuaulrich
FOSS Trading | www.fosstrading.com
R/Finance 2013: Applied Finance with R | www.RinFinance.com
More information about the R-help
mailing list