Hello all, So I am using the (formula entry) method for randomForests: randomForest(y~x1+x2+...+x39+x40,data=xxx,...) but the issue is that some of the items in that package dont take a formula entry - you have to explicitly state the y and x vector: randomForest(x=xxx[,c('x1','x2',...,'x40')],y=xxx[,'y'],...) Now my question is whether there is a function/way to tell R to take a formula and make the two corresponding datasets [x,y] (that way I dont have to create the x dataset manually with all 40 variables I have). There must be a more elegant way to do this than x=xxx[,c('x1','x2',...,'x40')] Thanks! George -- View this message in context: http://r.789695.n4.nabble.com/How-make-a-x-y-dataset-from-a-formula-based-entry-tp3834477p3834477.html Sent from the R help mailing list archive at Nabble.com.
Jean-Christophe BOUËTTÉ
2011-Sep-22 20:14 UTC
[R] How make a x,y dataset from a formula based entry
Hello, You can check ?model.frame. I do not know however to extract only the right-hand of left-hand part of a formula. JC 2011/9/22 trekvana <trekvana at aol.com>:> Hello all, > > So I am using the (formula entry) method for randomForests: > > randomForest(y~x1+x2+...+x39+x40,data=xxx,...) but the issue is that some of > the items in that package dont take a formula entry - you have to explicitly > state the y and x vector: > > randomForest(x=xxx[,c('x1','x2',...,'x40')],y=xxx[,'y'],...) > > Now my question is whether there is a function/way to tell R to take a > formula and make the two corresponding datasets [x,y] (that way I dont have > to create the x dataset manually with all 40 variables I have). > > There must be a more elegant way to do this than > x=xxx[,c('x1','x2',...,'x40')] > > Thanks! > George > > -- > View this message in context: http://r.789695.n4.nabble.com/How-make-a-x-y-dataset-from-a-formula-based-entry-tp3834477p3834477.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help at 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. >
Helios de Rosario
2011-Sep-23 11:07 UTC
[R] How make a x,y dataset from a formula based entry
To separate the parts of a formula, use as.character (check the examples in ?character) Helios 22 Sep 2011 16:14:05 -0400 From: Jean-Christophe BOU?TT? <jcbouette at gmail.com>> Hello, > You can check ?model.frame. > I do not know however to extract only the right-hand of left-handpart> of a formula. > > JC > > 2011/9/22 trekvana <trekvana at aol.com>: >> Hello all, >> >> So I am using the (formula entry) method for randomForests: >> >> randomForest(y~x1+x2+...+x39+x40,data=xxx,...) but the issue is thatsome of>> the items in that package dont take a formula entry - you have toexplicitly>> state the y and x vector: >> >> randomForest(x=xxx[,c('x1','x2',...,'x40')],y=xxx[,'y'],...) >> >> Now my question is whether there is a function/way to tell R to takea>> formula and make the two corresponding datasets [x,y] (that way Idont have>> to create the x dataset manually with all 40 variables I have). >> >> There must be a more elegant way to do this than >> x=xxx[,c('x1','x2',...,'x40')] >> >> Thanks! >> GeorgeINSTITUTO DE BIOMEC?NICA DE VALENCIA Universidad Polit?cnica de Valencia ? Edificio 9C Camino de Vera s/n ? 46022 VALENCIA (ESPA?A) Tel. +34 96 387 91 60 ? Fax +34 96 387 91 69 www.ibv.org Antes de imprimir este e-mail piense bien si es necesario hacerlo. En cumplimiento de la Ley Org?nica 15/1999 reguladora de la Protecci?n de Datos de Car?cter Personal, le informamos de que el presente mensaje contiene informaci?n confidencial, siendo para uso exclusivo del destinatario arriba indicado. En caso de no ser usted el destinatario del mismo le informamos que su recepci?n no le autoriza a su divulgaci?n o reproducci?n por cualquier medio, debiendo destruirlo de inmediato, rog?ndole lo notifique al remitente.
Gabor Grothendieck
2011-Sep-23 13:32 UTC
[R] How make a x,y dataset from a formula based entry
On Thu, Sep 22, 2011 at 2:54 PM, trekvana <trekvana at aol.com> wrote:> Hello all, > > So I am using the (formula entry) method for randomForests: > > randomForest(y~x1+x2+...+x39+x40,data=xxx,...) but the issue is that some of > the items in that package dont take a formula entry - you have to explicitly > state the y and x vector: > > randomForest(x=xxx[,c('x1','x2',...,'x40')],y=xxx[,'y'],...) > > Now my question is whether there is a function/way to tell R to take a > formula and make the two corresponding datasets [x,y] (that way I dont have > to create the x dataset manually with all 40 variables I have). > > There must be a more elegant way to do this than > x=xxx[,c('x1','x2',...,'x40')]We assume that the formula is of the form: fo <- y ~ x1 + x2 + x3 Now if we set: v <- all.vars(fo) and if DF is our data frame then DF[, v[1]] and DF[v[-1]] are the response and predictors. (You may need to add an intercept to the predictors and convert the predictors from data frame to a matrix depending on what you intend to do next.) -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com