楼主: davidchendh
90457 34

[数据管理求助] 请问Stata用什么命令提取字符串变量前2个汉字或前n个汉字?   [推广有奖]

21
卢冲 学生认证  发表于 2019-3-6 09:03:18

22
卢冲 学生认证  发表于 2019-3-6 09:08:10

23
疯哥哥哥哥 发表于 2019-4-15 15:50:23
007kimmy 发表于 2016-6-7 19:54
我想请教 变量province的值均为各个省份的中文名称,此时如何将中文字符改为数值? 我尝试了 gen province_ ...
字符串变为数值,用destring命令;数值变为字符串,用tostring命令,具体可以看help.
你这里if后面少了个“=”。正确的是:
gen province_new=1 if province=="北京市"。
提取字符的方法很多,例如本题:
gen province_new=usubstr(province,1,2)
gen province_new1=ustrleft(province,2)
gen province_new2=substr(province,1,6)
以上三种方法都是可以做到新变量province_new为"内蒙"的目的。
另外说一下,gen province_new2=substr(province,1,6),此处不应该是4,汉字字符是utf-8编码,一个汉字3个字节,不是4个。
如有错误,请多多指教!

24
疯哥哥哥哥 发表于 2019-4-15 15:53:07
葫芦娃大王 发表于 2018-1-2 10:11
请问大家,为什么我在stata中提取汉字的时候,发现一个字是占3个字符的啊?
你是对的,就是三个字节的。

25
sannian_ 发表于 2019-9-24 08:40:34
感谢!

26
山河涧库 发表于 2019-11-18 21:22:47
dxystata 发表于 2011-9-4 10:53
sungmoo版主好啊!
那如何提取后俩位呢?

27
山河涧库 发表于 2019-11-18 21:23:44
葫芦娃大王 发表于 2018-1-2 10:11
请问大家,为什么我在stata中提取汉字的时候,发现一个字是占3个字符的啊?
我的也是

28
杜佳艺 发表于 2020-3-19 16:07:46
sungmoo 发表于 2011-9-4 05:39
一个汉字占两位。

g x=substr(province,1,4)
请问1和4分别代表什么含义呢

29
艾维尼亚 发表于 2020-7-15 15:21:40
huchengchun 发表于 2014-12-2 15:48
请问将汉字改为数字用什么命令呢
encode

30
zyingx820 发表于 2020-12-4 09:59:41
sungmoo 发表于 2011-9-4 05:39
一个汉字占两位。

g x=substr(province,1,4)
谢谢谢谢!!!十分实用!!!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-26 00:54