Rolf Turner wrote:
Somehow I managed *not* to cc to R-help the message that I just sent to
you. I thought I'd clicked on "Reply All" but apparently not. And in
thrashing around trying to recover, I managed not to get a copy kept in
my "Sent Mail"!!!
Could I please prevail upon you to pass that message on to R-help? I
think that there are some ideas of general interest that others might
like to see.
So here is his reply:
On 14-02-25 9:00 PM, Rolf Turner wrote:
On 26/02/14 11:29, Duncan Murdoch wrote:
<SNIP>
One problem in your scrF: you have
tdone <- tt
rather than
tdone <<- tt
That creates a new local copy, it doesn't update the one in the parent
environment. That doesn't explain a "not found" error, but it would
cause problems...
I have never understood the use of "<<-"; missed that notation in your
example. Thanks for pointing it out.
The thing that causes the "not found" error is in xsolve.disc.R, where
you replace the environment of scrF with new.env(). That wipes out the
tiny one that local() created, and replaces it with an empty one whose
parent is the evaluation frame of xsolve.disc.
That was a bit of a "duh", wasn't it? The reason for the new.env()
stuff is my OCD tendency. I am always desperate to get rid of clutter
and the default environment is filled with stuff that has no reason to
be there IMHO. I guess the proper procedure would be to wrap each of
the functions upon which I inflict "new.env()" in local() to start with,
instead of mucking about with new.env() in that way.
Generally speaking it's a bad idea to replace the environment of
functions, it's hard to get it right. It's better to create the right
one in the first place.
By using local()?
Anyhow, having made the required changes, I now get the local() idea to
work.
Thank you!
I would still like to know why I got the bizarre phenomenon that I
initially got. It makes no sense. But that's just an academic question
now, so I won't waste any more of your time on it.
Thanks again.
cheers,
Rolf
______________________________________________
R-help@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.