[R] user defined function in rpart
Nicholas Lewin-Koh
nikko at hailmail.net
Wed Aug 28 08:41:09 CEST 2002
Hi,
I am trying to use the rpart library with my own set of functions on a
survival object. I get an immeadiate segmentation fault when i try
calling rpart with my list of functions. I get the same problem with the
logrank example from Therneau,s S-rpart library though their anova
example works. Should I report this as a bug, as even if my functions
are structured improperly, that should lead to an error in R (or
warning) not a seg fault.
If anyone has gotten this to work with survival objects i would
appreciate any tips. My test function is below. Note that there is
nothing for categorical cases because i am not using any caterorical
variables in my test.
Thanks Nicholas
tst.eval<-function(y, wt, parms){
dev<- sum(residuals(coxph(y~-1))^2)
list(label= sum(y[,2]), deviance=dev)
}
tst.split<-function(y, wt, x, parms, continuous){
xun<-sort(unique(x))
n <- nrow(y)
ndev<-sum(residuals(coxph(y~-1))^2)
gd<-rep(0,n-1)
dir<-rep(1,n-1)
if (continuous) {
for(i in xun[xun<max(xun)]){
lft<-try(sum(residuals(coxph(y[x>i]~-1))^2))
rt<-try(sum(residuals(coxph(y[x<=i]~-1))^2))
gd[x==i]<-ndev-(lft+rt)
#dir[x==i]<-1
}
list(goodness=gd , direction=)
}
else{
list(goodness= , direction = )
}
}
tst.init<-function(y, offset, parms, wt){
browser()
if (!is.null(offset)) y <- y-offset
list(y=y, parms=0, numresp=2, numy=2,
summary= function(yval, dev, wt, ylevel, digits ) {
paste(" mean=", format(signif(yval, digits)),
", MSE=" , format(signif(dev/wt, digits)),
sep='')
},
text= function(yval, dev, wt, ylevel, digits, n, use.n ) {
if(use.n) {paste(formatg(yval,digits),"\nn=", n,sep="")}
else{paste(formatg(yval,digits))}
})
}
tst.lst<-list(eval=tst.eval, split=tst.split, init=tst.init)
data(lung)
fit1 <- rpart(Surv(time, status) ~ age + ph.karno +
meal.cal,data=lung,control=rpart.control(minsplit=30, xval=0,
cp=.011),method=tst.lst)
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help 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-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
More information about the R-help
mailing list