【发布时间】:2017-08-07 10:27:29
【问题描述】:
我正在尝试创建一个函数,该函数可以创建模型并可以预测任何给定 data.frame(例如 mtcars)的目标变量。
#Function to create a model for predicting a target variable
myRegModel = function(myFormula,myData){
sampleIndex = sample(1:nrow(myData),size= 0.7*nrow(myData), replace=FALSE)
myTraining = myData[sampleIndex, ]
myTesting = myData[-sampleIndex, ]
myDataFit = lm(myFormula, data = myTraining)
myTesting$predVar <- predict(myDataFit, myTesting)
myTesting$predErr <- abs(((myTesting$mpg - myTesting$predVar)/ myTesting$mpg)*100)
print(cor(myTesting$mpg, myTesting$predVar))
print(mean(myTesting$predErr))
print(summary(myDataFit))
}
myRegModel(mpg ~ ., myMtCars)
但是,在查找上述预测误差和相关值的情况下,我已对目标变量 (mpg) 进行了硬编码。因为,我将函数中的目标变量作为第一个参数传递,有没有办法可以提取我的目标变量并动态分配给 myTesting data.frame。 (例如,myTesting$target)
【问题讨论】:
-
您可以使用
all.vars从公式中获取感兴趣的变量
标签: r function statistics linear-regression