Функция "train" Ошибка в пакете "caret" R: "Пожалуйста, используйте имена столбцов для` x` " - PullRequest
1 голос
/ 20 июня 2019

Я пытаюсь использовать функцию поезда для перекрестной проверки Leave-One-Out (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)

Можете ли вы указать мне, как исправитьэтот вопрос?

1 Ответ

0 голосов
/ 21 июня 2019

Нашли решение!

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"))
...