我正在尝试使用caret
包进行偏最小二乘分类。
我的数据集可以在这里找到这里。然而,我遇到一个错误,我不知道如何修正。
我使用的代码和收到的错误如下:
ctrl <- trainControl(method = "cv",number=2, repeats = 2)plsFit <- train(plant ~ ., data = rf.spec.train,method = "pls", tuneGrid = data.frame(.ncomp = c(1:10)), trControl = ctrl))
错误信息:
Error in data.frame(method = "cv", number = 1, repeats = 2, p = 0.75, : arguments imply differing number of rows: 1, 0, 2
当我使用tuneLength = xx
替代tuneGrid
时,我没有遇到错误。有什么建议可以告诉我我做错了什么吗?
回答:
我查看了caret包中train函数的文档,这里。
如果你查看tunegrid参数的描述,它提到:
注意:如果提供此参数,必须命名。
你输入tunegrid参数的方式,它没有被命名。所以我的建议是创建另一个变量,将值赋给这个变量,然后将它传递给函数。