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