基于编码变量标签的测试

Test Based on Label of Encoded Variable

假设我有一个字符串变量 animal,它具有值 dogcathorse。我对这个字符串变量进行编码以获得 animal2。然后我如何使用标签而不是实际数值来测试 animal2

换句话说,我可以对 animal 进行逻辑测试,如下所示:

gen dog = animal=="dog"

但是如果我用 animal2 做同样的事情,我会得到一个错误:

gen dog2 = animal2=="dog"

如何使用标签执行此测试?伪代码如下:

gen dog2 = label(animal2)=="dog"

此处的基本技术记录在 [U] 13.11(例如 here)。

这是一个例子:

. sysuse auto, clear
(1978 Automobile Data)

. count if foreign=="Domestic":origin
  52

. count if foreign=="Domestic":`: val label foreign'
  52

最后一个示例显示了一种查找值标签名称的方法,这可能在程序或 do 文件中很有用。