From: Megh Dal <megh700004_at_yahoo.com>

Date: Mon, 07 Jul 2008 00:19:45 -0700 (PDT)

R-help_at_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. Received on Mon 07 Jul 2008 - 07:22:58 GMT

Date: Mon, 07 Jul 2008 00:19:45 -0700 (PDT)

"You will have to translate each character string
to a function separately."

Here I have a modified program :

library(zoo)

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

fnc = function(data1)

{

selection2 = select.list(c("Mean", "SD"), multiple = T)

Mean = function(dataa) mean(dataa) SD = function(dataa) sd(dataa) my.match.fun <- function(x) match.fun(x) ### for (i in length(selection2)) { selection2[i] <- my.match.fun(selection2[i]) ### } ag = function(z, by, selection2) { f = function(f) aggregate(z, by, f) do.call(cbind, sapply(selection2, f, simplify = F)) } return(ag(data1, as.yearqtr, selection2))}

fnc(data1)

Frustrated !! still error. I also have tried downloading from R-forge. But download page is not working. I then tried directly from R using install.packages. Still there is no improvement.

Regards,

- On Mon, 7/7/08, Gabor Grothendieck <ggrothendieck_at_gmail.com> wrote:

> From: Gabor Grothendieck <ggrothendieck@gmail.com>

*> Subject: Re: [R] Error in defining function
**> To: megh700004_at_yahoo.com
**> Cc: r-help_at_stat.math.ethz.ch
**> Date: Monday, July 7, 2008, 8:44 AM
**> Your program works as is if you choose Mean but you have
**> introduced two new errors:
**>
**> 1. SD is not defined in your program.
**>
**> 2. if multiple choices are taken then it will try to pass a
**> vector to
**> my.match.fun but that calls match.fun which only allows
**> functions
**> to be passed to it. You will have to translate each
**> character string
**> to a function separately.
**>
**> Try this:
**>
**> funs <- c("Mean", "SD")
**> f <- function(fun) aggregate(data1, as.yearqtr,
**> get(fun))
**> do.call(cbind, sapply(tolower(funs), f, simplify = FALSE))
**>
**>
**> On Sun, Jul 6, 2008 at 10:43 PM, Megh Dal
**> <megh700004_at_yahoo.com> wrote:
**> > I made some changes and also incorporated your advice
**> :
**> >
**> > 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",
**> "SD"), multiple = T)
**> >
**> > Mean = function(dataa) mean(dataa)
**> > my.match.fun <- function(x) match.fun(x) ###
**> > selection2 <- my.match.fun(selection2) ###
**> > ag = function(z, by, selection2)
**> > {
**> > f = function(f) aggregate(z,
**> by, f)
**> > do.call(cbind,
**> sapply(selection2, f, simplify = F))
**> > }
**> >
**> > return(aggregate(data1, as.yearqtr, selection2))
**> > }
**> >
**> > fnc(data1)
**> >
**> > But still getting same error.
**> >
**> >
**> > --- On Mon, 7/7/08, Gabor Grothendieck
**> <ggrothendieck_at_gmail.com> wrote:
**> >
**> >> From: Gabor Grothendieck
**> <ggrothendieck_at_gmail.com>
**> >> Subject: Re: [R] Error in defining function
**> >> To: megh700004_at_yahoo.com
**> >> Cc: r-help_at_stat.math.ethz.ch
**> >> Date: Monday, July 7, 2008, 1:23 AM
**> >> 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)
**> >
**> >
**> >
**> >
*

R-help_at_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. Received on Mon 07 Jul 2008 - 07:22:58 GMT

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Mon 07 Jul 2008 - 11:31:51 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*