我有一个分类变量,包含12
个级别,其数值从1
到12
。
为这些数值中的每个数值分配一个标签。例如,1 = heart
,2 = brain
,3 = liver
,依此类推。我想做的是提取标签(心脏,大脑,肝脏)并将其放入本地宏中。这可能吗?
我尝试了很多不同的命令,例如describe
和codebook
。
我也尝试了以下方法:
levelsof var, local(diseases)
以上代码获取分类变量var
的级别并将其存储在本地宏diseases
中。但是,这仅输出数字值1,2,3,4
,而不输出标签。
答案 0 :(得分:4)
以下是依赖宏扩展功能的灵活解决方案:
sysuse auto, clear
levelsof foreign, local(levels)
local lab : value label foreign
foreach l of local levels {
local all `all' `: label `lab' `l''
}
display "`all'"
Domestic Foreign
如果您还想保留数值,请按如下所示更改循环:
foreach l of local levels {
local all `all' `l' `: label `lab' `l''
}
display "`all'"
0 Domestic 1 Foreign
答案 1 :(得分:3)
decode
命令对于解决此问题也很有帮助:
decode var, generate(labvar)
levelsof labvar, local(diseases) clean