我试图通过使用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'”
任何人都可以帮我这个吗?
答案 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))
PS:抱歉,我不能忍受公式。