[英]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 等。这些都是类似构造的变量(数字等),但它们的值不同。 除了这个结果变量之外,所有其他变量都保持不变。
我有一些使用lapply
和function()
的经验,但我无法确定如何将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.