On 31/10/2010 3:22 PM, Yilong Zhang wrote:
Dear all:

when I use parse() there is some problems. Below is an example:

b0<-1
b1<-1
x<-1
str2expr<-function(x){eval(parse(text=x))}
test1<-"b0+b1*sqrt(x)"
test2<-"b0+b1"
str2expr(test1)
str2expr(test2)

it can work well for test2 but not for test1.

Could you tell me how to fix this problem or is there other more stable
method to transfer an string to expression?

You are evaluating those expressions in the evaluation frame of your function, where "x" is the expression. Just specify the environment in which you want to evaluate them, e.g.

str2expr<-function(x){eval(parse(text=x), envir=parent.frame() )}

Duncan Murdoch


best regards

Elong

        [[alternative HTML version deleted]]

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

Reply via email to