Rpart将结果转换为R中的PDF文件

时间:2017-12-12 04:49:51

标签: r pdf rattle

我正在构建一些回归树模型,我已经完成了所有工作,现在我想将树写入pdf文件。我使用下面的命令来生成它。

pdf(file=paste0("Plots1.pdf"), header= "Rpart Outcome" )
lapply(names(tree.2), function(x)fancyRpartPlot(tree.2[[x]]))
dev.off()

tree.2 对象包含8个不同的rpart模型,并保存为列表。

上面的命令就像魅力一样,但问题是我想要根据列表树2的名称在PDF的每一页上面放一个单独的标题。(names(tree.2)),我已经尝试了很多不同的排列和组合,但无法通过lapply解决它,但是如果我使用for loop,上述事情是可以实现的。我想用lapply来执行此操作,是否可能?我知道它是,但我暂时无法做到。

此处使用的图书馆rattlerpart

玩具示例:

tree1 <- rpart(as.formula(mpg ~ hp + wt), data=mtcars)
tree2 <- rpart(as.formula(mpg ~ am + hp), data=mtcars)
treex <- list("tree1"= tree1, "tree2"=tree2)

pdf(file="file.pdf", header="Rpart Outcome")
lapply(names(treex), function(x)fancyRpartPlot(treex[[x]]))
dev.off()

在这里,我想在每个页面基础名称(treex)上使用标题。

如果有重复的问题(没有找到),请告诉我,我会立即删除。

谢谢

1 个答案:

答案 0 :(得分:2)

这似乎对我有用:

library(rpart)
  library(rattle)

  tree1 <- rpart(as.formula(mpg ~ hp + wt), data=mtcars)
  tree2 <- rpart(as.formula(mpg ~ am + hp), data=mtcars)
  treex <- list("tree1"= tree1, "tree2"=tree2)

  pdf(file="file.pdf")#, header="Rpart Outcome")
  lapply(names(treex), function(x)fancyRpartPlot(treex[[x]], main = x))
  dev.off()

我刚刚在main中添加了一个参数fancyRpartPlot,其中包含了该剧情的名称。

希望它有所帮助!