[R] altering a "call" variable from quote()

William Dunlap wdunlap at tibco.com
Mon Mar 28 17:32:03 CEST 2011


> -----Original Message-----
> From: r-help-bounces at r-project.org 
> [mailto:r-help-bounces at r-project.org] On Behalf Of Jack Tanner
> Sent: Sunday, March 27, 2011 9:14 PM
> To: r-help at stat.math.ethz.ch
> Subject: Re: [R] altering a "call" variable from quote()
> 
> Jack Tanner <ihok <at> hotmail.com> writes:
> 
> > > b = quote(b==3)
> > 
> > Now I want to append "&& x > 2" to the value of b. How do I do that?
> 
> Never mind, I figured it out:
> 
> substitute(b && x > 2, list(b=b))

You can also use call() or as.call(): 
  > e1 <- substitute(b && x > 2, list(b=b))
  > e2 <- call("&&", b, quote(x>2))
  > e3 <- as.call(list(quote(`&&`), b, quote(x>2)))
  > identical(e1,e2) && identical(e1,e3)
  [1] TRUE
substitute can be a pain when the first argument is not
a literal expression.

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com  

> 
> ______________________________________________
> R-help at 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.
> 



More information about the R-help mailing list