[R] Replacement in an expression - can't use parse()
christos at nuverabio.com
Tue Mar 27 16:29:36 CEST 2007
A way to do this is through substitute:
e1 <- substitute(expression(u1 + u2 + u3), list(u2=quote(x), u3=1))
But I am not sure whether you will run into similar limitations regarding
the length of the expression to be substituted.
Christos Hatzis, Ph.D.
Nuvera Biosciences, Inc.
400 West Cummings Park
Woburn, MA 01801
> -----Original Message-----
> From: r-help-bounces at stat.math.ethz.ch
> [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Daniel Berg
> Sent: Tuesday, March 27, 2007 9:57 AM
> To: r-help at stat.math.ethz.ch
> Subject: [R] Replacement in an expression - can't use parse()
> Dear all,
> Suppose I have a very long expression e. Lets assume, for
> simplicity, that it is
> e = expression(u1+u2+u3)
> Now I wish to replace u2 with x and u3 with 1. I.e. the 'new'
> expression, after replacement, should be:
> > e
> My question is how to do the replacement?
> I have tried using:
> > e = parse(text=gsub("u2","x",e))
> > e = parse(text=gsub("u3",1,e))
> Even though this works fine in this simple example, the use
> of parse when e is very long will fail since parse has a
> maximum line length and will cut my expressions. I need to
> keep mode(e)=expression since I will use e further in
> symbolic derivation and division.
> Any suggestions are most welcome.
> Thank you.
> Daniel Berg
> R-help at stat.math.ethz.ch mailing list
> PLEASE do read the posting guide
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help