2017-07-02 84 views
0

我想通过使用data.table包来计算两个变量的groupwise回归系数。eval(expr,envir,enclos)中的错误:未找到对象'mpg'

在这里,我发布了我的示例代码与虚拟数据。

#Model Dependent varaible 
reg_dep_vars<-"mpg" 
#Model independent variable 
reg_ind_vars<-c("cyl","drat") 

reg_data<-as.data.table(mtcars) 

#creating a formula with depedent and independent variables which going to be used in the model. 
reg_formula<-as.formula(paste(paste("reg_data$",reg_dep_vars,sep=""),"~",paste(paste("reg_data$",reg_ind_vars,sep=""),collapse="+"))) 

OUT<-reg_data[,.(intercept=coef(lm(reg_formula))[1],cyl=coef(lm(reg_formula))[2],drat=coef(lm(reg_formula))[3],P=glance(lm(reg_formula))$p.value,F=summary(lm(reg_formula))$fstatistic[1]),by=.(am,gear)] 

在上面的代码中,我试图找出cyl和drat变量的估计值,而按组是am和gear。

如果我使用上面的代码,我收到以下错误。 “eval中的错误(expr,envir,enclos):object'mpg'not found”

任何人都可以帮助我解决这个问题吗?

+0

您能否让您的代码更具可读性? –

回答

0

使用

library(tidyverse) 

mtcars_model <- function(df) { 
    lm.fit(y = df[[reg_dep_vars]], x = as.matrix(df[reg_ind_vars])) 
}  

test <- mtcars %>% 
    group_by(am, gear) %>% 
    nest() %>% 
    mutate(model = map(data, mtcars_model)) 

了解更多http://r4ds.had.co.nz/many-models.html。 PS:对不起,我受不了公式。

相关问题