在“ ctree”图中更改变量标签

时间:2019-01-01 21:28:07

标签: r ctree expss

我正在努力尝试使R中的'party'包中的CI树看起来很漂亮。到目前为止,就清理树而言,这就是我所拥有的。

current version of tree

我想做的是将每个单独节点上的变量名更改为更具描述性的内容,而不仅仅是将用于编码的缩写变量名。我尝试使用以下代码自行更改变量名称:

colnames(dat.long.imp.m)[colnames(dat.long.imp.m)=="Gender"] <- "sex"

因为某些变量名包含空格,所以我必须通过以下方式将它们输入到'ctree'函数中:

ctree(formula = DV ~ "`Executive Copartisan`" 

但这给了我一个错误:错误:尝试使用零长度变量名。因此,我改为尝试使用'expss'包中的'apply_labels'函数,但是标签实际上并没有应用到ctree图中(可以从屏幕抓图中看到)。

是否可以将这些变量名称更改为更具描述性的名称,其中可能包含空格?

1 个答案:

答案 0 :(得分:0)

ctree函数来自不支持标签的“ party”包。要在这种情况下使用标签,您需要use_labels函数。有关详细信息,请参见插图-Variables and value labels support。示例:

library(expss)
library(party)
data(mtcars)
mtcars = apply_labels(mtcars,
                      mpg = "Miles/(US) gallon",
                      cyl = "Number of cylinders",
                      disp = "Displacement (cu.in.)",
                      hp = "Gross horsepower",
                      drat = "Rear axle ratio",
                      wt = "Weight (1000 lbs)",
                      qsec = "1/4 mile time",
                      vs = "Engine",
                      am = "Transmission",
                      gear = "Number of forward gears",
                      carb = "Number of carburetors"
)

res = use_labels(mtcars, 
           ctree(hp ~ cyl + carb, # or hp ~ .
                 controls = ctree_control(minsplit = 1),
                 data = ..data) # ..data is placeholder for 'mtcars' dataset
           )

plot(res)

enter image description here