将 party 包用于决策树图时,导致此错误消息的原因是什么?
What is causing this error message when using the party package for a decision tree plot?
我正在使用 party
包绘制 decision tree
。当 运行 plot(tree)
函数时,它绘制 decision tree
。但是,我想更改 node
labels
的字体大小,我正在使用以下代码:
tree<-ctree(Attrition~MaritalStatus+Age_group,data=traindf1)
plot(tree)
text(tree, cex = 0.5)
当运行最后一行代码时,我得到以下错误信息:
Error in as.double(y) :
cannot coerce type 'S4' to vector of type 'double'
我看过这个 post 但它似乎与另一个包有关:
as.double(y) 中的错误:无法将类型 'S4' 强制转换为类型 'double' 的向量
我该如何解决这个问题?
请注意,您可能应该使用 partykit
而不是 party
,因为前者在调整树的图形方面提供了更大的灵活性。还要注意 party
和 partykit
不应一起使用,因为 ctree
对象在 partykit
和 party
.[=33 中是不同的=]
partykit::ctree
和 party::ctree
都没有 adding/changing 文本标签的 text
方法。也许您在阅读 rpart
时遇到了 plot + text
语法,这是一个完全不同的 R 包,用于递归 partitioning/classification 和决策树。
这是两种方法的并排示例
partykit::ctree
library(partykit)
fit <- ctree(Ozone ~ ., data = airquality[complete.cases(airquality), ])
您可以通过gp
函数参数更改字体大小,例如
plot(fit, gp = gpar(fontsize = 4))
rpart::rpart
library(rpart)
fit <- rpart(Ozone ~ ., data = airquality[complete.cases(airquality), ])
plot(fit)
text(fit)
这里可以通过text
中的cex
参数来改变字体大小。
我正在使用 party
包绘制 decision tree
。当 运行 plot(tree)
函数时,它绘制 decision tree
。但是,我想更改 node
labels
的字体大小,我正在使用以下代码:
tree<-ctree(Attrition~MaritalStatus+Age_group,data=traindf1)
plot(tree)
text(tree, cex = 0.5)
当运行最后一行代码时,我得到以下错误信息:
Error in as.double(y) :
cannot coerce type 'S4' to vector of type 'double'
我看过这个 post 但它似乎与另一个包有关: as.double(y) 中的错误:无法将类型 'S4' 强制转换为类型 'double' 的向量
我该如何解决这个问题?
请注意,您可能应该使用 partykit
而不是 party
,因为前者在调整树的图形方面提供了更大的灵活性。还要注意 party
和 partykit
不应一起使用,因为 ctree
对象在 partykit
和 party
.[=33 中是不同的=]
partykit::ctree
和 party::ctree
都没有 adding/changing 文本标签的 text
方法。也许您在阅读 rpart
时遇到了 plot + text
语法,这是一个完全不同的 R 包,用于递归 partitioning/classification 和决策树。
这是两种方法的并排示例
partykit::ctree
library(partykit)
fit <- ctree(Ozone ~ ., data = airquality[complete.cases(airquality), ])
您可以通过gp
函数参数更改字体大小,例如
plot(fit, gp = gpar(fontsize = 4))
rpart::rpart
library(rpart)
fit <- rpart(Ozone ~ ., data = airquality[complete.cases(airquality), ])
plot(fit)
text(fit)
这里可以通过text
中的cex
参数来改变字体大小。