1

我正在构建一些回归树模型,我已经完成了所有工作,现在我想将树写入 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保存为列表。

上面的命令就像一个魅力,但问题是我想要根据列表树的名称在 PDF 的每一页顶部有一个单独的标题。2(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)。

请让我知道,如果它是一个重复的问题(还没有找到),我会立即删除。

谢谢

4

1 回答 1

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()

我刚刚在其中添加了一个参数mainfancyRpartPlot它采用了情节的名称。

希望能帮助到你!

于 2017-12-12T10:48:09.190 回答