[R] Replacement in an expression - can't use parse()

Daniel Berg daniel at danielberg.no
Tue Mar 27 15:56:42 CEST 2007


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
expression(u1+x+1)

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.

Regards,
Daniel Berg



More information about the R-help mailing list