我正在构建一些回归树模型,我已经完成了所有操作,现在我想将树写入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
执行此操作,是否有可能?我知道是,但我现在无法做到。
库中使用的库: 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)。
请让我知道,以防万一它是重复的问题(还没有找到一个问题),我会立即删除。
谢谢
这似乎对我有用:
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()
我刚刚在fancyRpartPlot
中添加了一个参数main
,该参数以图。
希望它有帮助!