提取分类变量的值标签

时间:2019-07-03 21:06:40

标签: label extract stata categorical-data

我有一个分类变量,包含12个级别,其数值从112

为这些数值中的每个数值分配一个标签。例如,1 = heart2 = brain3 = liver,依此类推。我想做的是提取标签(心脏,大脑,肝脏)并将其放入本地宏中。这可能吗?

我尝试了很多不同的命令,例如describecodebook

我也尝试了以下方法:

levelsof var, local(diseases)

以上代码获取分类变量var的级别并将其存储在本地宏diseases中。但是,这仅输出数字值1,2,3,4,而不输出标签。

2 个答案:

答案 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