我的数据集包含一个字符串变量,其中存在一些“异国情调”字符,这意味着您无法消除字符串周围的一些空格。在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
答案 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. | 阿尔山市 |
+------------+
我不读中文,所以也许这是胡言乱语,但看起来它对我有用。如果这些名称没有意义,请尝试其他编码。