2013-05-16 46 views
4

我有一個問題,我主要使用分類樹中設置爲一類因子的分類數據。我在R中使用partykit包,而不是party,因爲此處的回答表明前一個包對圖形輸出的操作更好。如何在繪製partykit的ctree輸出時抖動節點拆分字符串?

我的真實數據集中沒有多個節點(約7個),但對於某些變量我有很多因子水平,而且我遇到了這樣一個問題,即分裂左側的因子水平和來自右側互相干擾。具體而言,這是因爲因子水平列表的水平方向與因子水平的長度相結合。

我可以使用MASS包中的Aids2數據集重現此問題。這是一句廢話的例子,但它產生行爲我想解決

library("partykit") 
SexTest <- ctree(sex ~ ., data=Aids2) 
plot(SexTest) 

如果你看一下節點1節點分割的信息,你會看到的行爲我描述:

在我真正的數據框,縮小字體只有當我把它縮小到4點時才起作用,這是不可讀的。

是否有某種方法可以爲該字符串定義文本框並啓用文本換行?我查看了pargpar試圖找到解決方案,但一直不成功。另一個合適的選擇是錯開每個節點的因子信息的垂直位置,以使它們位於另一個下面。

回答

2

嗯。我去過那兒。在不修改partykit包的內部結構的情況下,我不知道如何改進特定大小的輸出(我經常遇到問題,因爲X軸標籤在條形圖輸出中的繪製時間太長,無法繪製多叉樹因變量)。

這是一個醜陋的解決方法,但是您可以從樹中得到輸出結果,以知道哪些類別在哪裏,然後使用GIMP之類的東西來恰當地突出顯示您的PPT /報告/圖像。

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()

​​

larger resolution output from plot

0

排序的作品是在手動拆分列表的替代相關要點。您可以通過更改您想要新行添加「\ n」的級別名稱來執行此操作:「haem \ n」。這看起來有點難看,因爲這條線與因子水平部分重疊,但這是迄今爲止我發現的唯一真正的工作。