CLDS2014/16数据转码出错
2018-09-17 本文已影响196人
多多爸
CLDS2014/16个人水平数据在stata14以上版本显示中文乱码,
unicode translate
转码会导致stata闪退,试了很多办法都不成功,已经确定是数据的问题,跟Stata版本没关系。最后用了个笨办法,把数据和变量标签分别转码,需要用到stata 13,因为这个版本中文可以正常显示。处理过程如下
- 用Stata 13打开数据文件(下载的数据如果是Stata 14格式的,stata13无法直接读取,用saveold存成13格式)。用
descsave
命令把变量标签、变量类型、变量值标签存成do文件。这是个很棒的用户开发的命令,可以在线安装。 - 数据文件另存为csv格式,这样一来所有的标签已经被全部去掉了(转码不成功就是因为标签全是汉语的)。
- 用Stata 14或15给第1步生成的do文件转码,
- 用Stata 14或15读入第2步生成的csv文件,读入时需要保持变量的大小写,因为源文件很多变量名用了大写字母,第1步生成的do文件保留了大小写,但是
import delimited
命令默认把变量名所有字母自动转换成小写,不做设置的话,运行do文件找不到变量名字。
保留大小写的命令为import delimited using abc.csv, case(preserve)
。 - 执行第3步生成的do文件,存一下就是UTF8编码的文件了。