stata15中文乱码_Stata15:一次性转码,解决中文乱码问题
作者:連玉君 (知乎 | 主頁 | 碼云)
Note: 助教招聘信息請進入「課程主頁」查看。因果推斷-內生性 專題 ? 2020.11.12-15 主講:王存同 (中央財經大學);司繼春(上海對外經貿大學)空間計量 專題 ? 2020.12.10-13 主講:楊海生 (中山大學);范巧 (蘭州大學)
程序使用說明
ua 命令
適用于 stata15 用戶。可以一次性對當前工作路徑以及所有子文件夾中的文件進行轉碼(unicode),以保證中文字符可以正常顯示。
安裝
- 到這里 - 下載 ua.ado 和 ua.hlp,放置于 D:\stata15\ado\base\u 或 D:\stata15\ado\plus\u 文件夾中。(下載地址:https://gitee.com/arlionn/ua )
使用在 Stata 命令窗口中輸入 help ua,查看命令介紹和 Stata 范例。參照范例使用即可。
Stata 范例
* Change current working directory (CWD)
. cd D:\stata15\ado\personal\mypaper
* Unicode all .dta files in CWD and files in sub-directories
. ua: unicode encoding set gb18030
. ua: unicode translate *.dta
* Unicode all files (.do, .ado, .dta, .hlp, etc.) in CWD and files in sub-directories
. ua: unicode encoding set gb18030
. ua: unicode translate *
故事背景(程序撰寫過程)我昨天下午 5 點有個需求:我是從 Stata 13 直接跳到 15 的。可是,Stata 15 的中文編碼方案全變了,導致 do-file 和數據文件中的中文字符全是亂碼。Stata 提供了一組 unicode 開頭的命令,可以很方便地進行轉碼。但只能一個文件夾一個文件夾地轉。我用了 14 年的 stata,有成百上千個文件夾需要轉碼! 搜索了半天無果。只好求助濤哥 (李春濤是也)。
濤哥的第一反應是需要編程。我們的共識是需要遍歷所有文件夾,記錄下來,然后用循環語句進入每一個文件夾,進行轉碼。
我以為他會停幾天再開始做這個工作。又不好催促他,以便搭他的便車。只好自己開始弄。或許他也不好意思搭我的便車,哈哈。
沒想到今天晚上寫好所有程序和說明文檔后分享給他時,他居然也完工了!
看來,有好奇心的人都是一樣的亟不可待!
背靠背工作記錄
有想法:2017/12/18 17:05
同時完工:2017/12/19 22:28
我們的思路有何差別整體思路:遍歷當前文件夾下的所有子文件夾,對每個文件夾進行轉碼。
問題的關鍵:如何遍歷所有的子文件夾,并記錄這些文件夾的名稱。
濤哥的思路:使用如下 dos 命令遍歷當前工作文件夾下的所有子文件夾,并將他們存入一個文本文件 output.txt,隨后使用infix命令讀入內存:
!dir /B /S /ad >> output.txt
infix strL v 1-2000 using "output.txt"
最終,濤哥的程序長這樣:
君哥的思路:使用外部命令rcd實現上述功能,所有子文件夾名稱均以返回值的形式存儲于內存中。執行過程如下:
然后就可以寫一個循環逐個文件夾進行轉碼了:
最終,君哥的程序長這樣:
原始程序和使用方法
濤哥的程序
濤哥的程序尚未封裝成 .ado 文件,但用起來到也方便。直接復制如下代碼到一個 Do-file 中,使用 cd 命令進入需要轉碼的文件夾,然后選中如下命令,執行即可(快捷鍵是 Ctrl+D):
cd "D:\stata15\ado\personal\mypaper" //自行修改
!dir /B /S /ad >> output.txt
clear
unicode analyze output.txt
unicode encoding set gb18030
unicode translate "output.txt", transutf8
unicode erasebackups, badidea
infix strL v 1-2000 using "output.txt"
levelsof v ,local(urllist)
! del output.txt
clear
unicode translate * , transutf8
foreach c of local urllist{
clear
cd `"`c'"'
unicode encoding set gb18030
cap unicode translate * , transutf8
}
君哥的程序
已經封裝成 .ado 文件,并配有說明文檔。請到 Stata連享會-碼云-ua項目中(鏈接為:https://gitee.com/arlionn/ua)下載 ua.ado 和 ua.hlp 文件,放置于 D:\stata15\ado\base\u 或 D:\stata15\ado\plus\u 文件夾中。然后在 Stata 命令窗口中輸入 help ua,查看命令介紹和 Stata 范例。參照范例使用即可。
Stata 范例
* 進入需要轉碼的文件夾
. cd D:\stata15\ado\personal\mypaper
* 對當前文件夾及子文件夾中的所有 .dta 文件轉碼
. ua: unicode encoding set gb18030
. ua: unicode translate *.dta
* 對所有類型的文件轉碼
. ua: unicode encoding set gb18030
. ua: unicode translate *
結語生活如此美好!因為有你有我!
精選課程支持回看,課程不受直播時間限制,可以隨時購買觀看。游萬海,Stata: 分位數回歸,4.21 日 19:00-21:00,直播.
司繼春, 游萬海, 文本分析與爬蟲:專題視頻,四天直播回放
連玉君,Stata: 實證研究設計,2.4小時,模型設定、穩健性、內生性
連玉君,Stata: 動態面板模型,2.5小時,知其然,知其所以然
相關課程部分直播課
課程一覽支持回看,所有課程可以隨時購買觀看。Note: 部分課程的資料,PPT 等可以前往關于我們Stata 連享會 由中山大學連玉君老師團隊創辦,定期分享實證分析經驗。
公眾號推文分類:計量專題 | 內生性 | 空間計量 | 時序面板 | 結果輸出 | 交乘調節 五類,主流方法介紹一目了然:DID, RDD, IV, GMM, FE, Probit 等。連享會小程序:掃一掃,看推文,看視頻……掃碼加入連享會微信群,提問交流更方便
總結
以上是生活随笔為你收集整理的stata15中文乱码_Stata15:一次性转码,解决中文乱码问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: faster rcnn的测试
- 下一篇: 【MySQL原理解析】01. 一条SQL