[R] Error in defining function

Gabor Grothendieck ggrothendieck at gmail.com
Sun Jul 6 21:53:05 CEST 2008


On Sun, Jul 6, 2008 at 3:19 PM, Megh Dal <megh700004 at yahoo.com> wrote:
> Can anyone please tell me why I am getting this error?
>
> library(zoo)
> Z.index <- as.Date(sample(12450:15500, 3000))
> Z.data <- matrix(rnorm(300), ncol = 1)
>
> data1 <- zoo(Z.data, Z.index)
>
> fnc = function(data1)
>    {
>    selection2 = select.list(c("Mean"), multiple = F)
>
>     Mean = function(dataa) mean(dataa)
>
>     return(aggregate(data1, as.yearqtr, selection2))
>    }
>
>    fnc(data1)
>
> I got following error :
> Error in get(as.character(FUN), mode = "function", envir = envir) :
>  variable "Mean" of mode "function" was not found
>

Its a bug in aggregate.zoo .  Its just been fixed in the zoo devel version
available on R-Forge so you can either grab that or use the workaround
below:

library(zoo)

set.seed(1)
Z.data <- matrix(rnorm(300), ncol = 1)
Z.index <- as.Date(sample(12450:15500, 3000))
data1 <- zoo(Z.data, Z.index)

fnc <- function(data1) {
   selection2 <- select.list("Mean", multiple = FALSE)
    Mean <- function(dataa) mean(dataa)

    my.match.fun <- function(x) match.fun(x) ###
    selection2 <- my.match.fun(selection2) ###

    return(aggregate(data1, as.yearqtr, selection2))
}

fnc(data1)



More information about the R-help mailing list