Stata中使用recode重新编码变量后,如何恢复原变量标签?
在Stata中恢复recode后的变量原始标签
问题根源
你用recode生成新变量foreign1时,新变量的默认变量标签会自动关联recode命令的操作说明,而非原变量foreign的标签。当你删除原变量并重命名新变量后,就需要手动恢复原始标签。
正确解决方案(提前保存标签)
最稳妥的方式是在执行recode前先保存原变量的标签,再将其赋值给新变量:
sysuse auto, clear * 保存原变量的标签到本地宏 local orig_label: var label foreign * 执行recode生成新变量,同时定义值标签 recode foreign (1=2 "Foreign") (0=1 "Domestic"), gen(foreign1) * 将原始标签赋值给新变量 label var foreign1 "`orig_label'" * 替换原变量 drop foreign rename foreign1 foreign
你现有代码的问题
你尝试用regexm提取标签,但regexm仅返回匹配是否成功的布尔值(1/0),而非匹配到的文本内容。即便要提取,也需要用regexs(1)来获取捕获组的内容,但这种方式完全没必要——提前保存原始标签是更直接可靠的方法。
补充:若已替换变量且未提前保存
如果已经完成变量替换才想起恢复标签,且你记得原始标签内容,直接执行以下命令即可:
label var foreign "Car type"
内容的提问来源于stack exchange,提问作者Moses
相关产品推荐
相关产品推荐

