sungmoo 发表于 2010-8-15 07:53 
*设两文件都在默认目录里(以下根据数据特点而定)
use 汉字string.dta,clear
g str=x
loc m="0 1 2 3 4 5 6 7 8 9 - _ ( ) + # @ J"
foreach i of loc m{
replace str=subinstr(str,"`i'","",.)
}
joinby str using 汉字转拼音对应表.dta
g xx=subinstr(x,str,py,.)
drop str py
谢谢sungmoo版主的热心解答!
仍有一个小问题:loca m的内容(非汉字字符)比较多,手工找有点儿麻烦。我用下代码查找,结果有“?"的符号产生,但又不是"?"(分解汉字造成的)除了手工删除外,有更好的drop删除方法否?
use C:\Users\yueyang\Desktop\汉字string.dta,clear
loca a:type x
loca b=subinstr("`a'","str","",.)
forvalue i=1/`b'{
gen x`i'=substr(x,`i',1)
}
stack x1-x12,into(y)
replace y=subinstr(y," ","",.)
duplicates drop y,force
levelsof y,loca(m)