You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Stata中如何将带值标签的数值变量与ID合并为新字符串变量

在Stata中生成「ID - 标签名」格式的字符串变量

我来帮你搞定这个需求!要把带值标签的数值变量和ID合并成你想要的格式,关键是先把值标签提取成字符串,再和转成字符串的ID拼接,具体操作如下:

完整代码示例

clear
input long num id
1 689347
2 972623
end
label values num num
label def num 1 "Label A" 2 "Label B"

* 提取num的数值标签为字符串变量
decode num, gen(num_label)

* 拼接ID(转字符串)和标签,生成目标变量
gen id_label = string(id) + " - " + num_label

* 查看最终结果
list id num id_label

运行结果

+-------------------------------+

id num id_label
689347 Label A 689347 - Label A
972623 Label B 972623 - Label B

+-------------------------------+

关键步骤说明

  • decode命令的作用:如果直接用num变量拼接,Stata会用它的原始数值(1、2)而不是值标签(Label A、Label B),所以必须用decode num, gen(num_label)把值标签转换成对应的字符串,这样才能得到正确的标签文本。
  • 字符串拼接string(id)把数值型的id转换成字符串类型,然后用+运算符把「ID字符串」、「分隔符 -」、「标签字符串」三个部分拼接成完整的目标格式。

如果你追求简洁,也可以把两步合并成一行代码(可读性稍弱但功能一样):

gen id_label = string(id) + " - " + decode(num)

内容的提问来源于stack exchange,提问作者Aaron Wolf

火山引擎 最新活动