簡體   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