繁体   English   中英

使用 lapply 为多个模型制作 function 重复 felm model

[英]Making function to repeat felm model for multiple models using lapply

我试图在 r 中运行一系列模型,基于相同的结构,但变量集略有变化。 我正在使用来自lfe package 的felm model 具有多个协变量、固定效应和聚集变量。

我的基本 model 如下:

model <- felm(formula = outcome1 ~ mainx + cov1 + cov2 + cov3 | fe |0| clustercov, data = df)

这有效,并允许我对残差进行 plot 就好了。 但是,我现在需要为一系列替代结果变量运行此程序:结果outcome1, outcome2, outcome3结果 2、结果 3 等。这些都是类似构造的变量(数字等),但它们的值不同。 除了这个结果变量之外,所有其他变量都保持不变。

我有一些使用lapplyfunction()的经验,但我无法确定如何将felm model 插入此格式,以便我可以使 model 针对不同的结果变量重复。 这可能与felm ,我应该如何 go 来构建这个?

将公式构造为字符串并将其强制转换为公式往往是最容易的。

paste0("outcome", 1:4, " ~ mainx + cov1 + cov2 + cov3 | fe |0| clustercov") |> 
  lapply(as.formula)
#> [[1]]
#> outcome1 ~ mainx + cov1 + cov2 + cov3 | fe | 0 | clustercov
#> <environment: 0x5597656aaeb8>
#> 
#> [[2]]
#> outcome2 ~ mainx + cov1 + cov2 + cov3 | fe | 0 | clustercov
#> <environment: 0x5597656aaeb8>
#> 
#> [[3]]
#> outcome3 ~ mainx + cov1 + cov2 + cov3 | fe | 0 | clustercov
#> <environment: 0x5597656aaeb8>
#> 
#> [[4]]
#> outcome4 ~ mainx + cov1 + cov2 + cov3 | fe | 0 | clustercov
#> <environment: 0x5597656aaeb8>

代表 package (v2.0.1) 于 2022 年 7 月 30 日创建

您还可以将 felm felm() function 直接放入lapply()

paste0("outcome", 1:4, " ~ mainx + cov1 + cov2 + cov3 | fe |0| clustercov") |> 
  lapply(\(x) felm(as.formula(x),  data = df))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM