[R] merging two rpart objects
utkarshsinghal
utkarsh.singhal at global-analytics.com
Mon Sep 14 10:35:03 CEST 2009
Hi All,
I am using "rpart" function to model my data:
library(rpart)
set.seed(1)
x1 = sample(c("a","b"),100,T)
x2 = runif(100)
y = ifelse((x1=="a" & x2<=0.5)|(x1=="b" & x2>0.5), 0, 1)
data = data.frame(x1,x2,y)
fit = rpart(y~x1+x2)
plot(fit); text(fit, use.n=TRUE)
Now I want to use variable "x1" for the first split. I thought of the
following three ways of doing so, but none is complete:
1) Is there any way I can fix the variable used for the first split? (Or
it will be great if I can fix the variable used for any particular split.)
2) If I have the data and I also have some classification rule, is there
any way I can convert my rule into an "rpart" object? (so that I can use
it for plotting the tree and to predict on some new data)
For example:
If I want my rule for prediction to be:
y = if (x1=="a" and x2<=0.5) or (x1=="b" and x2>0.5) then 0, otherwise 1
How do I get the corresponding rpart object?
3) If I split my data according to the desired variable and fit
different cart models on both the datas:
spl = split(data,data$x1)
fit1 = rpart(y~x1,data=data, control=list(cp=0.00001,maxdepth=1))
fit2 = rpart(y~x2, data=spl[[1]])
fit3 = rpart(y~x2, data=spl[[2]])
Is there any way I can merge fit1, fit2 and fit3 in a single rpart
object? (so that I can use it for plotting the tree and to predict on
some new data)
Answer to any of the three above will solve my purpose. Any hints can be
helpful.
Thanks in advance,
Regards,
Utkarsh
More information about the R-help
mailing list