【发布时间】:2018-04-19 13:28:59
【问题描述】:
我正在尝试创建一个新的 string 变量,它将 string 的 real 数字(ID)与名称组合在一起。名称是带有value label 的numeric 变量。
示例数据如下:
* Input Data
clear
input long num id
1 689347
2 972623
end
label values num num
label def num 1 "Label A" 2 "Label B"
+------------------+
| num id |
|------------------|
| Label A 689347 |
| Label B 972623 |
+------------------+
我想做的是创建一个string 类型的689347 - Label A。这很容易做到,只需在num 上使用decode,然后编写一个新的string,如下所示:
tempvar numstr
decode num, gen(`numstr')
gen label = string(id) + " - " + `numstr'
+-------------------------------------+
| num id label |
|-------------------------------------|
| Label A 689347 689347 - Label A |
| Label B 972623 972623 - Label B |
+-------------------------------------+
这已经很容易了,但是有没有办法在一行中做到这一点,而不需要decode 命令?
例如:
gen label = string(if) + " " + string(num)
问题在于,当然,这只会给出num 所采用的real 数值(1 和2)的string。
在this post 中,您可以看到如何在if 命令中引用value label。
我的问题是:
有没有办法告诉 Stata 创建一个字符串并提取 value label 而不是值?
【问题讨论】: