I am trying to build a function in a context where the environment
concept would appear to be useful.  But I'm a bit foggy about this
concept and would appreciate some pointers and advice.

Basically the function I'm building, say foo(x,t), is a function of
two variables).  Depending on the value of t, foo will return one of
the values f1(x), f2(x), ..., fk(x), where each of f1, ..., fk is a
piecewise linear function (built using approxfun()).

Now I want other functions to be able to get at these pwl functions,
making use of a syntax of the form

                bar(y,foo)

so that in the code of bar() I could have assignments like

                clyde <- get("f1",envir=environment(foo))

So rather than assigning f1, ..., fk in the body of foo, I would like
to assign them in the environment of foo.

I want to do something like

                environment(foo) <- melvin

where melvin contains f1, ..., fk.  But how do I create ``melvin''
so that it is acceptable to the foregoing assignment?

One way I ***could*** go about it would be to create melvin
as a list:

                melvin <- list(f1=f1,f2=f2,etc.)

Then I could do

                attach(melvin)
                environment(foo) <- as.environment(2)

This seems to work ... but it also seems unnecessarily convoluted.

I could also do

                assign("f1",f1,envir=environment(foo))
                assign("f2",f2,envir=environment(foo))
                etc.

after creating foo(), but this is tejous.  I think I must be missing
a point or three.  As I said, I don't really grok environments.

Given that what I want to do makes any kind of sense at all, can
someone start me off in the right direction?

                                cheers,

                                        Rolf Turner
                                        [EMAIL PROTECTED]

______________________________________________
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

Reply via email to