From: Gabor Grothendieck <ggrothendieck_at_gmail.com>

Date: Fri 03 Feb 2006 - 08:05:18 EST

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Fri Feb 03 08:13:32 2006

Date: Fri 03 Feb 2006 - 08:05:18 EST

It actually did find index -- in fact, the error message is coming from index. I forgot that in this case index is a generic which in turn is calling index.ts and that is what it can't find. How about one of these:

*> library(zoo)
**> f <- function(x) eval(substitute(index(x), list(x = x)),
*

+ envir = as.environment("package:zoo"))

> environment(f) <- NULL

*> x <- ts(1:4)
**> f(x)
*

[1] 1 2 3 4

or

*> library(zoo)
**> f <- function(x) eval.parent(substitute(index(x)))
*

> environment(f) <- NULL

*> x <- ts(1:4)
**> f(x)
*

[1] 1 2 3 4

On 2/2/06, Fernando Saldanha <fsaldan1@gmail.com> wrote:

> Thanks, Gabor. I tried this without success:

*>
**> > z <- ts(1:5)
**> > f <- function(x) {f1 <- function() get("index", "package:zoo"); f1()(x)}
**> > environment(f) <- NULL
**> > f(z)
**> Error in f1()(x) : no applicable method for "index"
**>
**> I also tried this, which seemed simpler, with the same outcome:
**>
**> > z <- ts(1:5)
**> > f <- function(x) {f1 <- get("index", "package:zoo"); f1(x)}
**> > environment(f) <- NULL
**> > f(z)
**> Error in f1(x) : no applicable method for "index"
**>
**> FS
**>
**>
**>
**> On 2/2/06, Gabor Grothendieck <ggrothendieck@gmail.com> wrote:
**> > Try:
**> >
**> > f <- function() get("index", "package:zoo")
**> >
**> >
**> > On 2/2/06, Fernando Saldanha <fsaldan1@gmail.com> wrote:
**> > > I declared the environment of the function myfun to be NULL as follows:
**> > >
**> > > environment(myfun) <- NULL
**> > >
**> > > Later on I called that myfun and got an error message because the
**> > > function index() in the zoo package was called inside myfun and was
**> > > not visible:
**> > >
**> > > Error in myfun(args) : couldn't find function "index"
**> > >
**> > > I tried to use zoo::index() instead of index(), but that did not work.
**> > > In fact, zoo::index does not work even in the command line:
**> > >
**> > > > z<-ts(1:5)
**> > > > z
**> > > Time Series:
**> > > Start = 1
**> > > End = 5
**> > > Frequency = 1
**> > > [1] 1 2 3 4 5
**> > > > index(z)
**> > > [1] 1 2 3 4 5
**> > > > zoo::index(z)
**> > > Error in loadNamespace(name) : package 'zoo' does not have a name space
**> > >
**> > > How can I qualify index() so that it is visible inside the body of myfun?
**> > >
**> > > Thanks for any suggestions,
**> > >
**> > > FS
**> > >
**> > > ______________________________________________
**> > > R-help@stat.math.ethz.ch mailing list
**> > > https://stat.ethz.ch/mailman/listinfo/r-help
**> > > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
**> > >
**> >
**>
*

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Fri Feb 03 08:13:32 2006

*
This archive was generated by hypermail 2.1.8
: Fri 03 Feb 2006 - 15:13:27 EST
*