使用用户定义的函数制作和命名多个决策树图

时间:2018-02-22 15:16:55

标签: r

我想为多个数据集构建决策树,所以为了让生活更轻松,我想制作一个UDF。

我正在使用rpart()的cu.summary数据集作为我的MWE。里程由价格,国家,可靠性和类型预测。

我借用了代码(来自https://www.statmethods.net/advstats/cart.html),在建模像cu.summary这样的单个数据框时效果很好。

继续cu.summary,我把它分成两个数据框,cu.summaryADC和cu.summaryNJD。然后我尝试将cu.summaryADC和cu.summaryNJD传递到我的UDF函数中以制作我的决策树。

问题是决策树的标题。我希望绘图的标题包含用于生成它的数据框的名称,例如“里程盘的回归树cu.summaryADC”和“里程盘的回归树cu.summaryNJD”。

我对一般表达式main= paste("Regression Tree for Mileage ", names(DTList))的尝试不起作用。

感谢您的帮助!

尝试多个数据帧的代码:

#LOAD PACKAGE 
library(rpart)

# PREPARE MWE DATA BY SPLITTING IT INTO TWO DATA FRAMES   
dflist <- split(cu.summary, rep(1:2, length.out = nrow(cu.summary), each = ceiling(nrow(cu.summary)/2)))
cu.summaryADC <- dflist[[1]]
cu.summaryNJD <- dflist[[2]]

# MAKE FUNCTION 
DTMakerFun <- function(x){
fit <- rpart(Mileage~Price + Country + Reliability + Type, 
               method="anova", data=x)
  fitplot <- plot(fit, uniform=TRUE, 
                  main= paste("Regression Tree for Mileage ", names(DTList)))
  text(fit, use.n=TRUE, all=TRUE, cex=.8)
  return(fitplot)
}

# APPLY FUNCTION 
DTList <- lapply(list(cu.summaryADC,cu.summaryNJD), DTMakerFun)

0 个答案:

没有答案