2017-07-02 82 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:對不起,我受不了公式。

相關問題