The formula attribute of the builtin CO2 dataset seems a bit strange:> formula(CO2)Plant ~ Type + Treatment + conc + uptake What is one supposed to do with that? Certainly its not suitable for input to lm and none of the examples in ?CO2 use the above.
On 16-Jul-07 13:28:50, Gabor Grothendieck wrote:> The formula attribute of the builtin CO2 dataset seems a bit strange: > >> formula(CO2) > Plant ~ Type + Treatment + conc + uptake > > What is one supposed to do with that? Certainly its not suitable > for input to lm and none of the examples in ?CO2 use the above.I think one is supposed to ignore it! (Or maybe be inspired to write a mail to the list ... ). I couldn't find anything that looked like the above formula from str(CO2). But I did spot that the order of terms in the formula: Plant, Type, treatment, conc, uptake, is the same as the order of the "columns" in the dataframe. So I tried: D<-data.frame(x=(1:10),y=(1:10)) formula(D) x ~ y So, lo and behold, D has a formula! Or does it? Maybe if you give formula() a dataframe, it simply constructs one from the "columns". Best wishes, Ted. -------------------------------------------------------------------- E-Mail: (Ted Harding) <Ted.Harding at manchester.ac.uk> Fax-to-email: +44 (0)870 094 0861 Date: 16-Jul-07 Time: 14:57:28 ------------------------------ XFMail ------------------------------
Note that the formula uptake ~. will do the same thing so its not clear how useful this facility really is. On 7/16/07, Ted Harding <ted.harding at nessie.mcc.ac.uk> wrote:> On 16-Jul-07 14:16:10, Gabor Grothendieck wrote: > > Following up on your comments it seems formula.data.frame just creates > > a formula whose lhs is the first column name and whose rhs is made up > > of the remaining column names. It ignores the "formula" attribute. > > > > In fact, CO2 does have a formula attribute but its not extracted by > > formula.data.frame: > > > >> CO2 at formula > > uptake ~ conc | Plant > >> formula(CO2) > > Plant ~ Type + Treatment + conc + uptake > > Indeed! And, following up yet again on my own follow-up comment: > > library(combinat) > > for(j in (1:4)){ > for(i in combn((1:4),j,simplify=FALSE)){ > print(formula(CO2[,c(5,i)])) > } > } > uptake ~ Plant > uptake ~ Type > uptake ~ Treatment > uptake ~ conc > uptake ~ Plant + Type > uptake ~ Plant + Treatment > uptake ~ Plant + conc > uptake ~ Type + Treatment > uptake ~ Type + conc > uptake ~ Treatment + conc > uptake ~ Plant + Type + Treatment > uptake ~ Plant + Type + conc > uptake ~ Plant + Treatment + conc > uptake ~ Type + Treatment + conc > uptake ~ Plant + Type + Treatment + conc > > opening the door to automated fitting of all possible models > (without interactions)! > > Now if only I could find out how to do the interactions as well, > I would never need to think again! > > best wishes, > Ted. > > -------------------------------------------------------------------- > E-Mail: (Ted Harding) <ted.harding at nessie.mcc.ac.uk> > Fax-to-email: +44 (0)870 094 0861 > Date: 16-Jul-07 Time: 15:40:36 > ------------------------------ XFMail ------------------------------ >
On 16-Jul-07 14:42:19, Gabor Grothendieck wrote:> Note that the formula uptake ~. will do the same thing so its > not clear how useful this facility really is.Hmmm... Do you mean somthing like lm(uptake ~ . , data=CO2[,i]) where i is a subset of (1:4) as in my code below? In which case I agree! Ted.> > On 7/16/07, Ted Harding <ted.harding at nessie.mcc.ac.uk> wrote: >> On 16-Jul-07 14:16:10, Gabor Grothendieck wrote: >> > Following up on your comments it seems formula.data.frame just >> > creates >> > a formula whose lhs is the first column name and whose rhs is made >> > up >> > of the remaining column names. It ignores the "formula" attribute. >> > >> > In fact, CO2 does have a formula attribute but its not extracted by >> > formula.data.frame: >> > >> >> CO2 at formula >> > uptake ~ conc | Plant >> >> formula(CO2) >> > Plant ~ Type + Treatment + conc + uptake >> >> Indeed! And, following up yet again on my own follow-up comment: >> >> library(combinat) >> >> for(j in (1:4)){ >> for(i in combn((1:4),j,simplify=FALSE)){ >> print(formula(CO2[,c(5,i)])) >> } >> } >> uptake ~ Plant >> uptake ~ Type >> uptake ~ Treatment >> uptake ~ conc >> uptake ~ Plant + Type >> uptake ~ Plant + Treatment >> uptake ~ Plant + conc >> uptake ~ Type + Treatment >> uptake ~ Type + conc >> uptake ~ Treatment + conc >> uptake ~ Plant + Type + Treatment >> uptake ~ Plant + Type + conc >> uptake ~ Plant + Treatment + conc >> uptake ~ Type + Treatment + conc >> uptake ~ Plant + Type + Treatment + conc >> >> opening the door to automated fitting of all possible models >> (without interactions)! >> >> Now if only I could find out how to do the interactions as well, >> I would never need to think again! >> >> best wishes, >> Ted. >> >> -------------------------------------------------------------------- >> E-Mail: (Ted Harding) <ted.harding at nessie.mcc.ac.uk> >> Fax-to-email: +44 (0)870 094 0861 >> Date: 16-Jul-07 Time: 15:40:36 >> ------------------------------ XFMail ------------------------------ >> > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel-------------------------------------------------------------------- E-Mail: (Ted Harding) <ted.harding at nessie.mcc.ac.uk> Fax-to-email: +44 (0)870 094 0861 Date: 16-Jul-07 Time: 16:13:15 ------------------------------ XFMail ------------------------------
CO2 is apparently a groupedData object; the formula attribute is described by Pinheiro and Bates as a 'display formula'. Perhaps reference to the nlme package's groupedData help would be informative?>>> "Gabor Grothendieck" <ggrothendieck at gmail.com> 16/07/2007 16:18:37 >>>Yes. That's what I was referring to. On 7/16/07, Ted Harding <ted.harding at nessie.mcc.ac.uk> wrote:> On 16-Jul-07 14:42:19, Gabor Grothendieck wrote: > > Note that the formula uptake ~. will do the same thing so its > > not clear how useful this facility really is. > > Hmmm... Do you mean somthing like > > lm(uptake ~ . , data=CO2[,i]) > > where i is a subset of (1:4) as in my code below? In which case > I agree! > > Ted. > > > > > > On 7/16/07, Ted Harding <ted.harding at nessie.mcc.ac.uk> wrote: > >> On 16-Jul-07 14:16:10, Gabor Grothendieck wrote: > >> > Following up on your comments it seems formula.data.frame just > >> > creates > >> > a formula whose lhs is the first column name and whose rhs is made > >> > up > >> > of the remaining column names. It ignores the "formula" attribute. > >> > > >> > In fact, CO2 does have a formula attribute but its not extracted by > >> > formula.data.frame: > >> > > >> >> CO2 at formula > >> > uptake ~ conc | Plant > >> >> formula(CO2) > >> > Plant ~ Type + Treatment + conc + uptake > >> > >> Indeed! And, following up yet again on my own follow-up comment: > >> > >> library(combinat) > >> > >> for(j in (1:4)){ > >> for(i in combn((1:4),j,simplify=FALSE)){ > >> print(formula(CO2[,c(5,i)])) > >> } > >> } > >> uptake ~ Plant > >> uptake ~ Type > >> uptake ~ Treatment > >> uptake ~ conc > >> uptake ~ Plant + Type > >> uptake ~ Plant + Treatment > >> uptake ~ Plant + conc > >> uptake ~ Type + Treatment > >> uptake ~ Type + conc > >> uptake ~ Treatment + conc > >> uptake ~ Plant + Type + Treatment > >> uptake ~ Plant + Type + conc > >> uptake ~ Plant + Treatment + conc > >> uptake ~ Type + Treatment + conc > >> uptake ~ Plant + Type + Treatment + conc > >> > >> opening the door to automated fitting of all possible models > >> (without interactions)! > >> > >> Now if only I could find out how to do the interactions as well, > >> I would never need to think again! > >> > >> best wishes, > >> Ted. > >> > >> -------------------------------------------------------------------- > >> E-Mail: (Ted Harding) <ted.harding at nessie.mcc.ac.uk> > >> Fax-to-email: +44 (0)870 094 0861 > >> Date: 16-Jul-07 Time: 15:40:36 > >> ------------------------------ XFMail ------------------------------ > >> > > > > ______________________________________________ > > R-devel at r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-devel > > -------------------------------------------------------------------- > E-Mail: (Ted Harding) <ted.harding at nessie.mcc.ac.uk> > Fax-to-email: +44 (0)870 094 0861 > Date: 16-Jul-07 Time: 16:13:15 > ------------------------------ XFMail ------------------------------ >______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel ******************************************************************* This email and any attachments are confidential. Any use, co...{{dropped}}
About a month ago I had a similar issue related to 'formula': http://tolstoy.newcastle.edu.au/R/e2/devel/07/05/3329.html In summary: In S-Plus, the help for formula.data.frame says: This is a method for the function formula() for objects inheriting from class data.frame. If object is a model frame, the formula for the model frame is returned, otherwise a formula is deduced from the names of object. The first name is taken to be the response, and all the remaining names are pasted together additively. In R, the help for formula.data.frame is aliased to the help for formula, but does not clearly document the usage with data.frames. Kevin On 7/16/07, Gabor Grothendieck <ggrothendieck at gmail.com> wrote:> The formula attribute of the builtin CO2 dataset seems a bit strange: > > > formula(CO2) > Plant ~ Type + Treatment + conc + uptake > > What is one supposed to do with that? Certainly its not suitable for > input to lm and none of the examples in ?CO2 use the above. > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel >