我正在构建一些回归树模型,我已经完成了所有工作,现在我想将树写入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
来执行此操作,是否可能?我知道它是,但我暂时无法做到。
此处使用的图书馆:rattle
,rpart
玩具示例:
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)上使用标题。
如果有重复的问题(没有找到),请告诉我,我会立即删除。
谢谢
答案 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
,其中包含了该剧情的名称。
希望它有所帮助!