&引用;“火车”;“中的函数错误”;插入符号“;包R:“;请使用“x”的列名;
我正在尝试使用列函数进行遗漏(LOO)交叉验证(LOOCV) 当 工作得很好,我需要用另一种格式编写它,我可以把它放在一个for循环中,我可以制作任意数量的模型。但以下格式不起作用,并给出一个错误:&引用;“火车”;“中的函数错误”;插入符号“;包R:“;请使用“x”的列名;,r,r-caret,R,R Caret,我正在尝试使用列函数进行遗漏(LOO)交叉验证(LOOCV) 当 工作得很好,我需要用另一种格式编写它,我可以把它放在一个for循环中,我可以制作任意数量的模型。但以下格式不起作用,并给出一个错误: train(paste("y~", colnames(test[2])), data = test, method="lm", trControl = trainControl(method = "LOOCV")) Error: Please use column names for x 但“lm
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)
你能指导我如何解决这个问题吗?找到了解决方案
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"))
train(as.formula("y~x", data=test, method="lm", trControl = trainControl(method = "LOOCV"))