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_1
到 region_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 上 labutil
的 labvarch
,您可以使用
安装
ssc inst labutil
我有一个名为 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_1
到 region_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 上 labutil
的 labvarch
,您可以使用
ssc inst labutil