On Jan 6, 2012, at 9:51 PM, R. Michael Weylandt <michael.weyla...@gmail.com > wrote:

I imagine the answer will involve lazy evaluation and require you use force() but I'm not quite qualified to pronounce and not at a computer to test.

Your theory passes the experimental test:

for(i in 1:4) {force(i)
    junk[[i]] <- eval(bquote(function(x){42 + .(i)*x}))}
 junk


--
David.

Michael

On Jan 6, 2012, at 8:43 PM, Rolf Turner <rolf.tur...@xtra.co.nz> wrote:


I want to create a list of functions in a for loop, with the index
of the loop appearing explicitly in the function code.

After quite a bit of thrashing around I figured out how to do it.

Here is a toy example:

junk <- vector("list",4)
for(i in 1:4) {
  itmp <- i
  junk[[i]] <- eval(bquote(function(x){42 + .(itmp)*x}))
}

So I'm *basically* happy, but there's something I don't understand:
Why do I need "itmp"?

That is, if I do

junk <- vector("list",4)
for(i in 1:4) {
  junk[[i]] <- eval(bquote(function(x){42 + .(i)*x}))
}

then every entry of "junk" is equal to

function (x)
{
  42 + 4L * x
}

i.e. I seem to get the *last* value of the index always substituted, rather than the "current" value. Something (subtle?) is going on that I don't understand.
And than makes me feel not quite comfy.  Can anyone enlighten me?

Ta.

  cheers,

      Rolf Turner

P. S. Also: Is there a *better* way of accomplishing my objective than what I came up with?

      R. T.

______________________________________________
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.

______________________________________________
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.

David Winsemius, MD
West Hartford, CT

______________________________________________
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.

Reply via email to