Stata 如何根据字符串变量的一部分对变量进行排序?

Stata 如何根据字符串变量的一部分对变量进行排序?,stata,Stata,我有一个带有字符串变量的数据集,我正试图根据前两个字符生成一个新的二进制变量。所有字符串都有5个字符长,但为了排序,我只关心前两个字符 例如,我可以有22001和22005。由于两者都是22XXX形式,我想在变量类型_A中为两者赋值1。如果我有25001和25005,因为两者都不是22XXX形式,我想在变量类型_A中为两者赋值0。这应该可以完成以下工作: clear set obs 4 generate str5 var1 = "22001" in 1 replace var1 = "2200

我有一个带有字符串变量的数据集,我正试图根据前两个字符生成一个新的二进制变量。所有字符串都有5个字符长,但为了排序,我只关心前两个字符


例如,我可以有22001和22005。由于两者都是22XXX形式,我想在变量类型_A中为两者赋值1。如果我有25001和25005,因为两者都不是22XXX形式,我想在变量类型_A中为两者赋值0。

这应该可以完成以下工作:

clear
set obs 4

generate str5 var1 = "22001" in 1
replace var1 = "22005" in 2
replace var1 = "25001" in 3
replace var1 = "25005" in 4

gen type_A = substr(var1, 1, 2) == "22"

请注意,当您解释您的问题时,您似乎将
22005
存储为文本-这可能不是最好的主意。

@Nick您不赞成以“in Stata,…”开头提问?我相信,这是网站的政策,不在标题中命名语言。我找不到这方面的文档,但是(a)标签应该足够了(b)保持标题简洁是很重要的。如果你的问题暗示你想按前两个字符排序,那么
排序
就可以了。它也会对其他字符进行排序,但您不必在意这一点。你不需要任何新的变量。但也许你的问题并不是严格意义上的排序。这两种情况都不是很清楚。