Stata 按字母顺序对字符串变量中的字母进行排序

Stata 按字母顺序对字符串变量中的字母进行排序,stata,Stata,我需要按Stata中的字母顺序对字符串变量字母进行排序。有人能建议一个命令或方法来做这件事吗 例如:我有一个包含1000个观察值的字符串变量。因此,该方法将对字符(字母)进行如下排序: School--chloos sort--orst akramabad-dabamarka 对于这样大小的数据集,最简单的方法可能是将数据简短地扩展到一个版本,每个字符在一个单独的观察中。你的问题留下了关于小写和大写的开放规则,但我将以你的例子“School”到“chloos”字面意思是指使用小写 clear

我需要按Stata中的字母顺序对字符串变量字母进行排序。有人能建议一个命令或方法来做这件事吗

例如:我有一个包含1000个观察值的字符串变量。因此,该方法将对字符(字母)进行如下排序:

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!这真的很有效。谢谢你的帮助!好。接受答案会给你(我也是)额外的声誉。