我正在尝试使用火车功能进行一次留出(LOO)交叉验证(LOOCV)。
而
train(y~ x1, data = test, method="lm", trControl = trainControl(method = "LOOCV"))
可以很好地工作,我需要用另一种格式编写它,然后将其放入for循环中,该循环可以创建所需数量的模型。但是以下格式不起作用并给出错误:
train(paste("y~", colnames(test[2])), data = test, method="lm", trControl = trainControl(method = "LOOCV"))
Error: Please use column names for x
但是“ lm”功能中的相同格式效果很好:
lm(paste("y~", colnames(test[2])), data = test)
能否请您指导我如何解决此问题?
答案 0 :(得分:0)
找到了解决方案!
lm("y~x1", data=test)
与
相同lm (y~x1, data=test)
但是“ y〜x1”在火车功能中不起作用。 需要在其前添加“ as.formula ”:
train(as.formula("y~x", data=test, method="lm", trControl = trainControl(method = "LOOCV"))