eval() and parse() are you friends here. Possibly also substitute(). Example:
eval(parse(text="expand.grid(c(1,0),c(1,0))"))
However, I would like to reply with a question to you. Why do you end up
with a string that you need to convert in the first place?
That's the question, indeed!
> Maybe you are
more interested in a solution like the following one:>
N <- 2 l <- lapply(1:N, FUN=function(x) c(0,1)) expand.grid(l)
Henrik Bengtsson Lund University
Or, if you are really going to work completely on characters (hence you have to be more specific!):
do.call("expand.grid", rep(list(eval(parse(text = "c(1, 0)"))), 2))
Uwe Ligges
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED]
Sent: den 12 september 2003 18:55
To: [EMAIL PROTECTED]
Subject: [R] Converting character to function argument
How can one transform a character string into an argument of a function (which is not or I don't want it to be a character string)?
Example:
expand.grid(c(1,0),c(1,0)) ## OK
Var1 Var2 1 1 1 2 0 1 3 1 0 4 0 0
paste(rep("c(0,1)",2),collapse=',') ## to be used below
[1] "c(0,1),c(0,1)"
## string is the input I want, but it needs to be coerced to the correct
format
expand.grid(paste(rep("c(0,1)",2),collapse=',')) ## does not get me there
Var1 1 c(0,1),c(0,1)
______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help
