我正在使用decision tree
包绘制party
。运行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'
我看了一下这篇文章,但它似乎与另一个软件包有关: Error in as.double(y) : cannot coerce type 'S4' to vector of type 'double'
我该如何解决?
答案 0 :(得分:2)
请注意,您可能应该使用partykit
而不是party
,因为前者在调整树的图形方面提供了更大的灵活性。另外请注意,party
和partykit
不应一起使用,因为ctree
和partykit
中的party
对象是不同的。
partykit::ctree
和party::ctree
都没有text
方法来添加/更改文本标签。也许当您读到plot + text
时就遇到过rpart
语法,这是一个完全不同的R包,用于通过决策树进行递归分区/分类。
这是两种方法的并行示例
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)
您可以在此处通过cex
中的text
参数更改字体大小。