hi netters
i have a vector NAMES containing a series of variable names:
NAMES=c(x,r,z,m,st,qr,.....nn).
i wanna fit a regression tree by using the code:
my.tree<-tree(y~x+r+z+m+....nn,my.dataframe)
but i don't want to type out "x+r+z+m+....+nn" one by one, as
there are so
many variables. besides, sometimes i wanna put the code in a function. so i
need to have the argument "x+r+z+m+....+nn" generated from NAMES
automatically.
i've tried the code: paste(X,collpase="+") but it didn't work.
could anybody give me a hint?
zhihua li wrote:> hi netters > > i have a vector NAMES containing a series of variable names: > NAMES=c(x,r,z,m,st,qr,.....nn). > i wanna fit a regression tree by using the code: > my.tree<-tree(y~x+r+z+m+....nn,my.dataframe) > > but i don't want to type out "x+r+z+m+....+nn" one by one, as there are > so many variables. besides, sometimes i wanna put the code in a > function. so i need to have the argument "x+r+z+m+....+nn" generated > from NAMES automatically. > > i've tried the code: paste(X,collpase="+") but it didn't work.You have to construct it as.formula() from these characters, or even better use short term formulas such as "y~.", if all variables should be used anyway. Uwe Ligges> could anybody give me a hint? > > > ------------------------------------------------------------------------ > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Adaikalavan Ramasamy
2005-Jul-12 10:52 UTC
[R] how to generate argument from a vector automatically
You can do it by subsetting the dataframe
df <- data.frame( y=rbinom(100, 1, prob=0.5),
x1=rnorm(100), x2=rnorm(100), x3=rnorm(100),
z1=rnorm(100), z2=rnorm(100) )
names <- c("x1", "x2", "x3")
tree( y ~ . , data = df[ , c("y", names) ] )
This solution is useless when you want to consider interactions between
some terms etc. Another more flexible solution is from last example from
help(formula) :
xnam <- paste("x", 1:3, sep="")
call <- as.formula(paste("y ~ ", paste(xnam, collapse=
"+")))
tree( call, df )
Regards, Adai
On Tue, 2005-07-12 at 09:53 +0000, zhihua li wrote:> hi netters
>
> i have a vector NAMES containing a series of variable names:
> NAMES=c(x,r,z,m,st,qr,.....nn).
> i wanna fit a regression tree by using the code:
> my.tree<-tree(y~x+r+z+m+....nn,my.dataframe)
>
> but i don't want to type out "x+r+z+m+....+nn" one by one, as
there are so
> many variables. besides, sometimes i wanna put the code in a function. so i
> need to have the argument "x+r+z+m+....+nn" generated from NAMES
> automatically.
>
> i've tried the code: paste(X,collpase="+") but it didn't
work.
>
> could anybody give me a hint?
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html