unicode转换为stata14格式后出现凌乱的代码

时间:2017-08-10 15:17:19

标签: stata

我的数据集包含一个字符串变量,其中存在一些“异国情调”字符,这意味着您无法消除字符串周围的一些空格。在statalist中this thread之后,我设法识别并删除那些不可观察的异域角色(虽然不太了解底层机制)。

. charlist city

 &'().01?ABCDEGHIJKLMNPQSTUWXYZabcdeghijklnopqrstuwxyz?

. ret li

macros:
              r(chars) : "

 &'().01?ABCDEGHIJKLMNPQSTUWXYZabcdeghijklnopqrs.."
           r(sepchars) : "

   & ' ( ) . 0 1 ? A B C D E G H I J K L M N P .."
              r(ascii) : "10 13 32 38 39 40 41 46 48 49 63 65 66 67 68 69 71.."

replace city = subinstr(city, "`=char(10)'", "",.)
replace city = subinstr(city, "`=char(32)'", "",.)
replace city = subinstr(city, "`=char(161)'`=char(161)'", "",.)

但是,当我想使用Unicode命令将此数据集(Stata13格式)转换为Stata 14格式时,字符串变量将替换为如下所示的小方块。即使我保留原始变量而不删除异国情调的字符,它仍然会得到相同的结果。因此,我不能100%确定是否由于编码问题或异国情调的字符

unicode翻译就像

一样
cd E:\Land_Supply\Data\土地交易微观数据
clear
*unicode encoding set gb18030 // city names are in chinese
unicode analyze trans_citypanel2013.dta
unicode translate trans_citypanel2013.dta,invalid
u trans_citypanel2013,clear

enter image description here

1 个答案:

答案 0 :(得分:0)

以下似乎对我使用您的示例数据...

unicode analyze citynames.dta
unicode encoding set gb18030
unicode translate citynames.dta
use citynames.dta, clear
list in 1/3

     +------------+
     |       city |
     |------------|
  1. |  阿尔山市  |
  2. |  阿尔山市  |
  3. |  阿尔山市  |
     +------------+

我不读中文,所以也许这是胡言乱语,但看起来它对我有用。如果这些名称没有意义,请尝试其他编码。