来自标签的Stata因子值

时间:2014-09-22 15:28:23

标签: stata

我想查找与标签关联的值/代码,并将该值存储在标量或本地宏中。虽然我想要的信息存储在标签矢量的定义中,但显然我需要通过一些扭曲才能得到它。

延伸罗伯托·费雷尔answer to my last question,我提出了这种方法:

// sample data 

clear
input str5 mystr int mynum
a 5
b 5
b 6
c 4
end

encode mystr, gen(myfactor)

// get code for "b"

gen tmp = 0
replace tmp = myfactor if myfactor == "b":myfactor
sort tmp
scalar bcode = tmp[_N]

在数据操作和代码维护方面,这似乎非常低效,特别是考虑到我想要的信息已经保存(并且可以label list查看)。

1 个答案:

答案 0 :(得分:2)

这使用来自SSC的labellist。使用ssc install labellist下载。

clear
set more off

*----- example data -----

input str5 mystr
"good"
"bad"
"bad"
"regular"
end

encode mystr, gen(myfactor)

*----- what you want -----

labellist

local faclab = r(myfactor_labels)
local facval = r(myfactor_values)

// get # for "good"
local i : list posof "good" in faclab
local j : word `i' of `facval'

display "`j'"