[Rd] class() on substitute(...) output?

Henrik Bengtsson hb at biostat.ucsf.edu
Fri Jan 3 02:16:25 CET 2014


Does it make sense to talk about the class of the output of
substitute(...)?  I'm puzzled by the following outputs:

ee <- list(
  A = substitute( a <- 1 ),
  B = substitute({ a <- 1 }),
  C = substitute(( a <- 1 )),
  D = substitute( a == 1 )
)

> t(sapply(ee, FUN=function(e) { c(typeof=typeof(e), mode=mode(e), class=class(e)) }))
  typeof     mode   class
A "language" "call" "<-"
B "language" "call" "{"
C "language" "("    "("
D "language" "call" "call"

That the mode in C is "(", is motivated in help("mode"): "that some
calls have mode "(" which is S compatible."  However, what's the
explanation for the different classes?  Is that intended or just
"garbage" output?

Thanks,

Henrik



More information about the R-devel mailing list