我有一个问题,我在分类树中主要使用分类数据,设置为一类因子。我在R中使用partykit
包,而不是party
,因为之前的答案提示前一个包更适合处理图形输出。
我的真实数据集中没有很多节点(大约7个),但是我对一些变量有很多因子水平,我遇到的问题是分裂左侧的因子水平和来自右边互相干扰。具体而言,这是因为因子水平列表的水平方向与因子水平的长度相结合。
我可以使用MASS
包中的Aids2数据集重现该问题。这是一个无意义的例子,但它产生了我想解决的行为
library("partykit")
SexTest <- ctree(sex ~ ., data=Aids2)
plot(SexTest)
如果查看节点1的节点拆分信息,您将看到我描述的行为:
在我的真实数据框架中,缩小字体仅在我将其降低到4点时才有效,这是不可读的。
是否有某种方法可以为该字符串定义文本框,并启用文本换行?我查看了par
和gpar
试图找到解决方案,但一直没有成功。另一个适合的选择是错开每个节点的因子信息的垂直位置,使它们一个位于另一个之下。
答案 0 :(得分:2)
嗯。我去过那儿。如果不修改partykit包的内部结构,我就不知道如何改善特定大小的输出(我经常在条形图输出上使用X轴标签输出太长的问题多重因变量)。
这是一个丑陋的解决方法,但您可以从树中获取输出以了解哪些类别在哪里,然后使用类似GIMP的内容来适当地突出显示powerpoint / report /的图像。
Model formula:
sex ~ state + diag + death + status + T.categ + age
Fitted party:
[1] root
| [2] T.categ in hs, hsid, haem, other
| | [3] T.categ in hs, hsid, haem
| | | [4] state in NSW, Other, VIC: M (n = 2386, err = 0.0%)
| | | [5] state in QLD: M (n = 197, err = 0.5%)
| | [6] T.categ in other: M (n = 70, err = 10.0%)
| [7] T.categ in id, het, blood, mother: M (n = 190, err = 42.6%)
Number of inner nodes: 3
Number of terminal nodes: 4
您还可以将输出的大小调整为更大的值,例如png()
png('tmp.png',width=1024,height=768)
plot(SexTest)
dev.off()
答案 1 :(得分:1)
另一种方法是在相关点手动拆分列表。您可以通过更改希望新行包含“\ n”:“haem \ n”的级别名称来完成此操作。这看起来有点难看,因为这条线部分地与因子水平重叠,但它是迄今为止我发现的唯一真正的工作。