我正在尝试使用caret包进行分类的最小二乘最小二乘。

我的数据集可以找到here。但是我收到一个错误,我无法弄清楚如何纠正。

我使用的代码和收到的错误:

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时,不会出现错误。关于我在做什么错的任何建议吗?

最佳答案

我检查了插入符号包here的火车功能的文档。

如果您看一下tunegrid参数的描述,它说:


  注意:如果给定,则必须命名此参数。


您输入tunegrid参数的方式未命名。所以我建议创建另一个变量,然后将值分配给该变量,然后将其传递给函数。

07-24 09:54