从varImp()中获取最重要的变量名

时间:2014-08-07 18:22:04

标签: r rpart

我正在使用函数varImp()。

我适合一棵树,然后使用varImp()来查看哪些变量最重要。我想从varImp()的输出中提取最重要的变量名。但输出似乎是一个列表,没有办法得到变量名,只有变量有多重要的数字权重。

我已尝试将输出转换为数据框并使用names(),但两者都不允许我获取重要的变量名称。

以下是一个例子:

> # Sample data
> head(Orthodont)
Grouped Data: distance ~ age | Subject
  distance age Subject  Sex
1     26.0   8     M01 Male
2     25.0  10     M01 Male
3     29.0  12     M01 Male
4     31.0  14     M01 Male
5     21.5   8     M02 Male
6     22.5  10     M02 Male
> sample_tree <- rpart(distance ~ ., data = Orthodont)
> varImp(sample_tree)
          Overall
age     1.1178243
Sex     0.5457834
Subject 2.8446154
> names(varImp(sample_tree))
[1] "Overall"
> as.data.frame(varImp(sample_tree))
          Overall
age     1.1178243
Sex     0.5457834
Subject 2.8446154
> # What I want are the names of the two most important variables.

1 个答案:

答案 0 :(得分:2)

您要查找的名称位于对象的rownames()中。

imp <- varImp(sample_tree)
rownames(imp)[order(imp$Overall, decreasing=TRUE)]

输出:

[1] "Sex"     "age"     "Subject"

根据这些得分,两个最重要的变量是:

rownames(imp)[order(imp$Overall, decreasing=TRUE)[1:2]]

给出了:

[1] "Sex"     "age"