sunchenstar
在用递归时:
Construtree<-function(testdata)
{
L<-nrow(testdata)
val<-SplitTree(testdata)[[1]] #最佳阈值
corcol<-SplitTree(testdata)[[2]] #最佳阈值对应的列号
count<-0
for(i in 1:L)
{
if(testdata[i,corcol]<val) count<-count+1
}
othcount<-L-count
LT<-array(0,dim=c(count,2))
LT<-subset(testdata,testdata[,corcol]<val)
RT<-array(0,dim=c(othcount,2))
RT<-subset(testdata,testdata[,corcol]>=val)
if(!(nrow(LT)==1||length(unique(LT[,1]))==1))#只要把nrow(LT)==1的条件换成等于2或三就不会出现下标出界的提示
{
Construtree(LT)
LT
}
if(!(nrow(RT)==1||length(unique(RT[,1]))==1))
{
Construtree(RT,2*index+1)
RT
}
}