R:如何使用别名调用数据框列?

时间:2019-01-16 16:45:10

标签: r function

我正在编写一个用于从线性回归模型获取测试错误的函数。

我的输入是一个包含模型各部分的列表

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)

如何从数据框中调用特定列?我可以使用列表别名“响应”来做到这一点吗?

0 个答案:

没有答案