我有一个名为
education
的变量,其中 0 = 主要 1 = 次要 2 = 三级。
我使用
encode
命令将其从字符串更改为数字,同时通过以下方式维护标签:
label define edulabel 0 "primary" 1 "secondary" 2 "tertiary"
encode education, generate(education_n) label(edulabel)
但是当我实际浏览数据集时,我可以看到新生成的
education_n
将数据存储为3(初级)、4(二级)和5(三级)。
为什么会出现这种情况以及如何修复它以存储为 0、1 和 2?
要准确回答这个问题既难又容易。这很难,因为我们看不到您的数据,而且您没有给出数据示例。
这很容易,因为有一个通用的答案。 Stata 在您的数据中看到的内容不是您为标签定义的确切文本,这就是它添加三个新标签的原因。
一些可能性是
前导和/或尾随空格。首先将字符串变量推入
trim()
。
尽管您的报告与此相矛盾,但字符串变量中任何大写字母的使用都足以让 Stata 确定字符串值不完全匹配。除了你所说的内容之外,代码中没有任何智能来决定你的意思。