使用encode命令将字符串变量转换为数字

问题描述 投票:0回答:1

我有一个名为

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?

string label stata encode numeric
1个回答
0
投票

要准确回答这个问题既难又容易。这很难,因为我们看不到您的数据,而且您没有给出数据示例。

这很容易,因为有一个通用的答案。 Stata 在您的数据中看到的内容不是您为标签定义的确切文本,这就是它添加三个新标签的原因。

一些可能性是

  1. 前导和/或尾随空格。首先将字符串变量推入

    trim()

  2. 尽管您的报告与此相矛盾,但字符串变量中任何大写字母的使用都足以让 Stata 确定字符串值不完全匹配。除了你所说的内容之外,代码中没有任何智能来决定你的意思。

© www.soinside.com 2019 - 2024. All rights reserved.