我正在使用函数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.
答案 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"