Thanks a lot, that seems to do exactly what I need!
Best wishes,
Jon
On 16-Apr-13 10:21, peter dalgaard wrote:
Is this what you are looking for?
FUN = eval(bquote(function(x) .(parse(text = fstring)[[1]])))
FUN
function (x)
x + 2
FUN(3)
[1] 5
On Apr 16, 2013, at 09:50 , Jon Olav Skoien wrote:
Dear list,
I am trying to create a function from a string, and have so far solved it with
eval(parse()). This works well also when using the newly created function as an
argument to another function. The trouble starts when I want to use it with
parLapply. Below is a much simplified example:
##############
fstring = "x+2"
FUN = function(x) eval(parse(text = fstring))
FUN(3)
FUN2 = function(y, func) y + func(y)
FUN2(3,FUN)
# I can also pass FUN as an argument to FUN2 when using foreach and parallel:
library(parallel)
library(foreach)
cl = makeCluster(2, outfile = "")
ylist = list(1:3,4:6)
result = foreach(i = 1:2) %dopar% {
FUN2(ylist[[i]], FUN)
}
# But now when I wanted to change to parLapply (actually parLapplyLB) fstring
is not found anymore:
parLapply(cl, as.list(1:4), FUN2, func = FUN)
##############
I assume there is a problem with environments, the question is how to solve
this. The cleanest would be to substitute fstring with its content in FUN, but
I did not figure out how. Substitute or bquote do not seem to do the trick,
although I might not have tried them in the right way. Any suggestions how to
solve this, either how to substitute correctly, or to completely avoid the
eval(parse())?
Thanks,
Jon
--
Jon Olav Skøien
Joint Research Centre - European Commission
Institute for Environment and Sustainability (IES)
Land Resource Management Unit
Via Fermi 2749, TP 440, I-21027 Ispra (VA), ITALY
jon.sko...@jrc.ec.europa.eu
Disclaimer: Views expressed in this email are those of the individual and do
not necessarily represent official views of the European Commission.
______________________________________________
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.
--
Jon Olav Skøien
Joint Research Centre - European Commission
Institute for Environment and Sustainability (IES)
Land Resource Management Unit
Via Fermi 2749, TP 440, I-21027 Ispra (VA), ITALY
jon.sko...@jrc.ec.europa.eu
Disclaimer: Views expressed in this email are those of the individual and do
not necessarily represent official views of the European Commission.
______________________________________________
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.