Я пишу функцию для получения ошибки теста из модели линейной регрессии.
Мой вход - это список, в котором есть каждая часть модели
model.1 <- list("medv","~.","Boston_Ready")
names(model.1) <- c("response", "input","dataset")
Моя функция вычисляетошибка набора проверки с этого входа
ValidationError <- function(model){
df <- get(model$dataset)
formula <- paste(model$response,model$input)
response <- model$response
#validation set
train <- sample(nrow(df), (nrow(df)/2))
fit_train <- lm(formula,data=df,subset=train)
Valid_MSE <- mean(df[-train,]$response - predict(fit_train, df[-train,]))^2
print(Valid_MSE)
}
Ошибка читает Error: attempt to apply non-function
Это потому, что определение Valid_MSE
включает в себя df[-train,]$response
Я такжепробовал
df[-train,]$get(response)
df[-train,]$paste(response)
Как я могу вызвать определенные столбцы из кадра данных?Могу ли я сделать это, используя мой псевдоним списка «response»?