R-alpha: two-sided to one-sided formula

Douglas Bates bates@stat.wisc.edu
Tue, 2 Dec 1997 11:55:49 -0600 (CST)


At times we want to convert a two-sided formula to a one-sided
formula.  In S we can do this by dropping the second entry in the
formula.  In R that object no longer has a formula class.
 R> ttt <- score ~ age | Infant
 R> class(ttt)
 [1] "formula"
 R> length(ttt)
 [1] 3
 R> ttt[-2]
 [[1]]
 ~

 [[2]]
 age | Infant

 R> class(ttt[-2])
 NULL
 R> do.call("~", ttt[-(1:2)])
 ~age | Infant

In general it would not be a good idea to propagate the formula class
to subsets but it does make sense in this case.  We can get around it
by replacing ttt[-2] by do.call("~", ttt[-(1:2)]) I suppose.  Any
opinions on whether ttt[-2] should still be a formula?
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._