On Jun 25, 2011, at 15:24 , David Winsemius wrote: > > On Jun 24, 2011, at 6:12 PM, StellathePug wrote: > >> Hello R Users! >> I have a list called "tabs" that I would like to have the same structure as >> my list "eqSystem." The two look like they have the same structure but they >> are different because when I look at their attributes, class(eqSystem[[1]]) >> is "call" but class(tabs[[1]]) is "formula". I want to have class(tabs[[1]]) >> as a call too. >> >> So what does "call" mean? > > An as yet unevaluated function invocation with first as the named function > followed by quoted arguments is a "call": > > See the help(call) page: > > > f <- round > > A <- 10.5 > > (g <- as.call(list(f, quote(A)))) > .Primitive("round")(A) > > eval(g) > [1] 10 > > > call("mean", quote( c(1,2,3))) > mean(c(1, 2, 3)) > > eval( call("mean", quote( c(1,2,3)))) > [1] 2 > > It seems very unlikely that a formula object could be coerced into a valid > call simply by altering its class. To convince us otherwise you need to > provide more information than you have supplied to the present. The results > of str() on these objects might be a first step.
Actually, no. Any unevaluated expression in R is mode "call", unless atomic or symbol. It will also be class "call", unless expressedly overridden by an S3 class assignment. Notice that operators are really function calls. I.e. > mode(quote(x+y)) [1] "call" > class(quote(x+y)) [1] "call" But > class(quote(x)) [1] "name" > class(quote(3.14159)) [1] "numeric" (This is why the R docs keep talking about "unevaluated expressions" instead of "call objects": They aren't always that.) The "~" operator is also a function call. However, evaluating "~" returns an object which is the actual call assigned class "formula" (plus an environment attribute). > f <- y ~ x > class(f) [1] "formula" > unclass(f) y ~ x attr(,".Environment") <environment: R_GlobalEnv> > mode(f) [1] "call" > class(unclass(f)) [1] "call" I.e., an unevaluated formulae expression (as in quote(y~x)) is class "call", as is an unclassed formula object. So it is pretty easy to have objects of class "formula" very similar to objects of class "call". -- Peter Dalgaard Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Email: pd....@cbs.dk Priv: pda...@gmail.com ______________________________________________ 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.