使用varImp返回错误:$运算符对原子向量无效

时间:2018-08-31 18:18:22

标签: r svm r-caret

我正在尝试使用插入符号包中的varImp函数按重要性对功能进行排名。这就是我所拥有的:

ctrl <- trainControl(method = "LGOCV", savePred=T)
mod <- train(Group~., data=metrics, method = "svmLinear", trControl = ctrl)
importance <- varImp(mod, scale=FALSE)

但是varImp函数在Traceback中给了我这个错误:

Error: $ operator is invalid for atomic vectors
5.
FUN(newX[, i], ...)
4.
apply(x, 2, testFunc, y = y)
3.
filterVarImp(x_dat, y_dat, nonpara = nonpara, ...)
2.
varImp.train(mod, scale = FALSE)
1.
varImp(mod, scale = FALSE)

我以为我所做的一切都与文档一样。我是R和插入符号的新手,所以这真的使我感到困惑。感谢您的任何帮助。

编辑:感谢您对问题的建议!对于数据集,我认为我不允许将其发布到任何地方,因此我手动生成了一个较小的矩阵,该矩阵仍会再现上述错误。

    Group   f1      f2      f3       f4      f5
    0      5377.8   3506.9  1999.3   1659.9  448.7
    0      7963.4   4016    931.2    970     468
    0      5175.2   2449.8  802      1191.7  110.2
    0      6542     2198    938.8    965.5   115.1
    1      5641.2   3936.1  1639.5   1206    520.7
    1      8136.8   3527.7  1931     1765.1  582.4
    1      7195.5   2496.2  1650.8   1387    406.3

我用过

metrics$Group <- as.factor(metrics$Group) 

将“组”列设置为分类变量。

0 个答案:

没有答案