我需要在 Stata 中按字母顺序对字符串变量字母进行排序。有人可以建议一个命令或方法来做到这一点吗?
例如:我有一个包含 1000 个观察值的字符串变量。因此,该方法会对字符(字母)进行排序,如下所示:
School--chloos
sort--orst
akramabad-dabamarka
对于这么大的数据集,最简单的方法可能只是将expand
数据简要地转换为一个版本,每个字符都在单独的观察中。你的问题叶子打开大写和小写的规则,但我相信你的例子"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 |
+----------------------------+
为每个字母创建单独的变量并在观察中对它们进行排序似乎也是可能的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句