R-在用户定义模型上的度量列表上循环
我目前在差异模型方面存在差异,并且希望以有效的方式度量同一模型的不同度量 例如,我有一个数据框,其中的列表示行驶里程、工作小时数、状态、组和时间 目前,我在其中复制和粘贴每个度量的模型的代码:R-在用户定义模型上的度量列表上循环,r,regression,R,Regression,我目前在差异模型方面存在差异,并且希望以有效的方式度量同一模型的不同度量 例如,我有一个数据框,其中的列表示行驶里程、工作小时数、状态、组和时间 目前,我在其中复制和粘贴每个度量的模型的代码: # Create DID models model_miles <- lm(df$miles_driven ~ df$Group + df$Time + df$Group * df$Time, data = df)
# Create DID models
model_miles <- lm(df$miles_driven ~ df$Group
+ df$Time
+ df$Group * df$Time, data = df)
model_hours <- lm(df$hours_worked ~ df$Group
+ df$Time
+ df$Group * df$Time, data = df)
# Select results using clustered standard errors. The purpose of this is to
# avoid making distributional assumptions about the errors in the models.
results_miles <- clubSandwich::coef_test(model_miles,
vcov = "CR2",
cluster = df$state,
test = "Satterthwaite")
results_hours <- clubSandwich::coef_test(model_hours,
vcov = "CR2",
cluster = df$state,
test = "Satterthwaite")
results <- data.table::rbindlist(list(results_miles, results_hours))
View(results)
#创建DID模型
如果您使用[[
而不是$
,它将起作用
例如:
dat <- data.frame(A=1:1, B=1:2)
x <- "A"
lm(dat[[x]] ~ dat$B)
dat在这些情况下,我总是在lm
中粘合一个公式。下面的示例。如果您为lm
提供了data
参数,而不是显式传递dataframe$varname
,则只需给出变量名即可
library(glue)
dostuff <- function(metric, dataframe){
model.form <- '{metric} ~ b + c + c*d'
lm(as.formula(glue(model.form)), data = dataframe)
}
df <- data.frame(a = runif(10), b = runif(10), c = runif(10), d = runif(10))
dostuff('a', df)
library(glue)
dostuff <- function(metric, dataframe){
model.form <- '{metric} ~ b + c + c*d'
lm(as.formula(glue(model.form)), data = dataframe)
}
df <- data.frame(a = runif(10), b = runif(10), c = runif(10), d = runif(10))
dostuff('a', df)
glue('{metric} ~ b + c + c*d')
paste(metric, '~ b + c + c*d')