全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
22735 7
2012-12-26
如题,向大家求助。    样本一开始未区分st和非st,现在需要区分。只有在公司名(name)中会出现“st”字符,请问如何将这些st公司挑选出来,或者是标记出来,比如赋值为1。多谢了!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-12-26 17:56:42
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-12-28 10:31:16
sungmoo介绍的indexnot(s1,s2)函数:英文直翻就是return the (position) INDEX of the (1st) character in s1 that does NOT appear in s2
反馈s1字串中第一个没有在s2字串中出现的字符(在s1中)的位置,例如:
. display indexnot("xxab","ysxb") s1里第一个没出现的是a,所以反馈a在s1中的位置
3
. display indexnot("xxab","ysxt")  虽然b也没出现在s2里,但是s1里第一个没出现的是a,所以反馈a在s1中的位置
3

如果s1字串中的全部字符都出现在s2中(不管在s2中的位置和顺序,只要有就成),那么反馈0。
. display indexnot("ab","tab") 全出现了 也就是说 index not appear = FALSE 所以 回馈0
0
. display indexnot("ab", "carribean")   全出现了 ,不管在s2中的顺序
0
. display indexnot("ab","tt") 都没出现,所以反馈第一个字符的位置,1
1
如果不好理解的话,也可以用regexm(s,re) —— 这个函数help file里的例子挺多的:
s: string; re: regular expression, 如果re在s里面,或是以某种形式存在,则回馈1,否则0
. display regexm("carribean","car")
1
. display regexm("carribean","ab")
0
所以此例可以这么办,生成个st-dummy:
gen st=regexm(stockname,"ST") // ST出现在名字中任何地方都回馈1,否则0。. display regexm("adfsST","ST")
1
另外如果强调是在字串头部出现,加^号,即:
. display regexm("adfsST","^ST")
0
. display regexm("STabc","^ST")
1

或者indexnot(s1,s2):
gen st=indexnot("ST",stockname)==0 //双否即肯,
如果stockname含有ST,那么st回馈1,其它0




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-3-18 16:35:51
monstersivle 发表于 2012-12-28 10:31
sungmoo介绍的indexnot(s1,s2)函数:英文直翻就是return the (position) INDEX of the (1st) character in  ...
看help文件头疼的表示有例子很感谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-3-19 06:14:58
如果st开头的话,sort一下,如果不,只好用一用string function了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-6-2 09:22:51
sort name  然后直接删除,很方便
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群