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.
