全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
6894 9
2016-05-24
各位大牛,请教个问题。现有两列字符型变量:
    name                                                      var1                       newvar
平安银行股份有限公司                           平安银行                      1

万科企业股份有限公司                            浦发银行                     0
深圳中国农大科技股份有限公司              万科                            1
神州长城股份有限公司                           赣锋锂业                      0
秦皇岛秦冶重工有限公司                       天业通联                      0

现在想找出name变量中包含var1变量字符串,重新产生新的变量newvar。即var1变量中的字符串只要出现在name这一变量中,即为1,否则为0.
尝试过strmatch, 但strmatch好像只能查找特定的字符,而不是示例中var1变量的一系列字符串,strpos,regexm好像都只能查找某一个特定的字符串,而不是字符串变量。由于var1有3000多个观察值,用简单的罗列法似乎不太现实。

故请教各位大家,能否帮忙解决这一问题,谢谢。


二维码

扫码加我 拉你入群

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

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

全部回复
2016-5-27 23:50:10
复制代码
二维码

扫码加我 拉你入群

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

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

2016-5-29 14:05:39
楼上方法很好,也来贡献一个strpos()的解决办法:
复制代码
二维码

扫码加我 拉你入群

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

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

2016-5-30 21:10:07
znxkxx 发表于 2016-5-29 14:05
楼上方法很好,也来贡献一个strpos()的解决办法:
晕。。。我相信了楼主说的
strpos,regexm好像都只能查找某一个特定的字符串,而不是字符串变量。
才写的循环。。。

你这个是正解。。。
二维码

扫码加我 拉你入群

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

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

2021-4-7 20:26:16
znxkxx 发表于 2016-5-29 14:05
楼上方法很好,也来贡献一个strpos()的解决办法:
请问我运行了这个,第a列第1行的变量并没有在b列完成全部搜索,然后在第c列第1行生成1(找到)或0(没找到)的结果,可以帮忙看下吗,谢谢
二维码

扫码加我 拉你入群

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

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

2021-7-6 21:35:59
gen id=0
forvalues i = 1/5{
   replace id= id+regexm(name, var1[`i'])
}
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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