我想查找与标签关联的值/代码,并将该值存储在标量或本地宏中。虽然我想要的信息存储在标签矢量的定义中,但显然我需要通过一些扭曲才能得到它。
延伸罗伯托·费雷尔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
查看)。
答案 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'"