See V&R's S PROGRAMMING, esp. section 3.5; and section 6.1 and subsequent of
the "R Language Definition."

An expression object is the output of parse(), and so is R's representation
of a parsed expression. It is a type of list -- a parse tree for the
expression. This means that you can actually find the sorts of things you
mention by taking it apart as a list:

> ex <- parse(text = "x + y")
> ex
expression(x + y)
> class(ex)
[1] "expression"
> ex[[1]]
x + y
> ex[[c(1,1)]]
`+`
> ex[[c(1,2)]]
x
> ex[[c(1,3)]]
y


There are few if any circumstances when one should do this: this is the job
of the evaluator. There are also special tools available for when you really
might want to do this sort of thing   -- eg. ?formula, ?terms for altering
model specifications. But it is tricky to do right and in full generality --
e.g. ?eval and the above references for some of the issues. 

Bert Gunter
Genentech Nonclinical Statistics
South San Francisco, CA 94404
650-467-7374


-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Alberto Monteiro
Sent: Wednesday, February 28, 2007 1:03 PM
To: [email protected]
Subject: [R] What is a expression good for?

I mean, I can generate a expression, for example, with:

z <- expression(x+y)

But then how can I _use_ it? Is it possible to retrieve
information from it, for example, that z is a sum, its
first argument is x (or expression(x)) and its second
argument is y?

Alberto Monteiro

______________________________________________
[email protected] 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.

______________________________________________
[email protected] 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