eval(expr,envir,enclos)出错:找不到对象'mpg'

时间:2017-07-02 09:11:32

标签: r data.table

我试图通过使用data.table包计算两个变量的分组回归系数。

这里我发布了带有虚拟数据的示例代码。

#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变量的估计,而by group是am和gear。

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

任何人都可以帮我这个吗?

1 个答案:

答案 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:抱歉,我不能忍受公式。