blue sky wrote:
I made the following example to see what are the difference between
expression and quote. But I don't see any difference when they are
used with eval()? Could somebody let me know what the difference is
between expression and quote?
Expressions are vectors of unevaluated expressions, so one difference is
that expressions can have more than one element.
Another difference is more subtle: objects of mode "expression" are
better at retaining their identity as an unevaluated expression
> eval(substitute(2+x,list(x=expression(pi))))
Error in 2 + expression(pi) : non-numeric argument to binary operator
> eval(substitute(2+x,list(x=quote(pi))))
[1] 5.141593
The really convincing application of this escapes me for the moment, but
the gist of it is that there are cases where a quoted expression may
blend in a bit too seemlessly when using computing on the language.
Also, expression objects are more easy to recognize programmeatically,
quote() may result in objects of mode "call", "name", or one of the base
classes.
-pd
expr=expression(2*3)
quo=quote(2*3)
eval(expr)
str(expr)
class(expr)
typeof(expr)
mode(expr)
attributes(expr)
eval(quo)
str(quo)
class(quo)
typeof(quo)
mode(quo)
attributes(quo)
______________________________________________
R-help@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.
--
O__ ---- Peter Dalgaard Ă˜ster Farimagsgade 5, Entr.B
c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalga...@biostat.ku.dk) FAX: (+45) 35327907
______________________________________________
R-help@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.