Stata 按字母顺序对字符串变量中的字母进行排序
我需要按Stata中的字母顺序对字符串变量字母进行排序。有人能建议一个命令或方法来做这件事吗 例如:我有一个包含1000个观察值的字符串变量。因此,该方法将对字符(字母)进行如下排序:Stata 按字母顺序对字符串变量中的字母进行排序,stata,Stata,我需要按Stata中的字母顺序对字符串变量字母进行排序。有人能建议一个命令或方法来做这件事吗 例如:我有一个包含1000个观察值的字符串变量。因此,该方法将对字符(字母)进行如下排序: School--chloos sort--orst akramabad-dabamarka 对于这样大小的数据集,最简单的方法可能是将数据简短地扩展到一个版本,每个字符在一个单独的观察中。你的问题留下了关于小写和大写的开放规则,但我将以你的例子“School”到“chloos”字面意思是指使用小写 clear
School--chloos
sort--orst
akramabad-dabamarka
对于这样大小的数据集,最简单的方法可能是将数据简短地扩展到一个版本,每个字符在一个单独的观察中。你的问题留下了关于小写和大写的开放规则,但我将以你的例子
“School”
到“chloos”
字面意思是指使用小写
clear
input str9 sandbox
"School"
"sort"
"akramabad"
end
gen length = length(sandbox)
gen id = _n
expand length
bysort id : gen char = substr(lower(sandbox), _n, 1)
sort id char
bysort id (char) : gen newbox = char[1]
by id: replace newbox = newbox[_n-1] + char if _n > 1
by id: replace newbox = newbox[_N]
by id: keep if _n == 1
drop length char
list
+----------------------------+
| sandbox id newbox |
|----------------------------|
1. | School 1 chloos |
2. | sort 2 orst |
3. | akramabad 3 aaaabdkmr |
+----------------------------+
为每个字母创建单独的变量,并在观察范围内对它们进行排序似乎也是可能的 如果你对这个主题有任何进一步的问题,试着在谷歌上搜索“stata排序列表字母顺序”。dabamarka错了
dabamarka
是akramabad
颠倒的,不是按字母顺序排列的。谢谢!我以前找过。我只能使用命令和技术对变量列表和字符串标量(仅一个)进行排序。但是,我需要将所有字符串标量(1000个标量)转换为新生成列中的每个标量的字母顺序?如果你是认真的。我的建议是这是个坏主意。在任何情况下,在你发表评论之前都会发布一个答案。谢谢@Nick!这真的很有效。谢谢你的帮助!好。接受答案会给你(我也是)额外的声誉。