Stata中新建指标变量的自动标注

Automatic labelling of newly created indicator variables in Stata

我有一个名为 region 的变量,它有 22 个元素。这是 tabulate region 的输出:

   region of place of work |      Freq.     Percent        Cum.
---------------------------+-----------------------------------
               tyne & wear |          6        1.20        1.20
   rest of northern region |         12        2.40        3.60
           south yorkshire |          9        1.80        5.40
            west yorkshire |         23        4.60       10.00
rest of yorks & humberside |          9        1.80       11.80
             east midlands |         42        8.40       20.20
               east anglia |         12        2.40       22.60
            central london |         41        8.20       30.80
inner london (not central) |         23        4.60       35.40
              outer london |         19        3.80       39.20
        rest of south east |         97       19.40       58.60
                south west |         46        9.20       67.80
west midlands metropolitan |         29        5.80       73.60
     rest of west midlands |         14        2.80       76.40
        greater manchester |         15        3.00       79.40
                merseyside |          2        0.40       79.80
        rest of north west |         31        6.20       86.00
                     wales |         12        2.40       88.40
               strathclyde |         23        4.60       93.00
          rest of scotland |         27        5.40       98.40
          northern ireland |          8        1.60      100.00
---------------------------+-----------------------------------
                     Total |        500      100.00

我使用 tab region, gen(region_) 从中创建了指标变量。这将创建 22 个新变量,从 region_1region_22。我 确实希望 指标变量具有简单的名称,如 region_1 等(例如,使用 region_* 更容易调用)。问题是变量 的 标签,类似于 region==south west。我希望它是 south west.

我看过 dummieslab (SSC),但它着重于向新变量 names 添加标签。 these 个解决方案中的 None 个都可以。你知道自动获得这个的方法吗?即使是像从标签中删除特定单词(删除 region== 位)这样的简单函数也可以工作。我找不到类似的东西。

循环遍历变量并每次从标签中删除不需要的文本。此基本功能记录在 help macro 和相应的手册条目中。

foreach v of var region_* { 
    local lbl : var label `v' 
    local lbl : subinstr local lbl "region==" "", all 
    local lbl = trim("`lbl'") 
    label var `v' "`lbl'" 
} 

有关固定解决方案,请参阅 SSC 上 labutillabvarch,您可以使用

安装
ssc inst labutil