在Stata中自动标记新创建的指标变量

时间:2016-01-16 17:30:18

标签: 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),但重点是为新变量名称添加标签。 these个解决方案都不起作用。你知道一种自动获取方法吗?即使是一个简单的函数,比如从标签中删除特定的单词(摆脱region==位)也行。我找不到类似的东西。

1 个答案:

答案 0 :(得分:1)

循环遍历变量并每次从标签中删除不需要的文本。此基本功能记录在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上labvarch的{​​{1}},您可以使用

安装
labutil