楼主: 白羽向
4253 5

[数据管理求助] stata定义虚拟变量,通配符不管用了 [推广有奖]

  • 0关注
  • 0粉丝

初中生

0%

还不是VIP/贵宾

-

威望
0
论坛币
797 个
通用积分
1.0471
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
586 点
帖子
15
精华
0
在线时间
0 小时
注册时间
2014-12-1
最后登录
2016-11-25

楼主
白羽向 学生认证  发表于 2015-11-13 13:28:44 |AI写论文
10论坛币
定义一个虚拟变量,我是这么写的:
gen rep = 0
replace rep = 1 if (analystname=="*徐妍*")

但是执行后,analystname为“徐妍”或包含“徐妍”(如“徐妍,廖绪发”)的rep值都没有变化。
请问是哪里出了问题?
想将ananlystname中包含某些姓名的样本的rep值更改为1,其余为0,应该如何写命令?

PS:
replace rep = 1 if (analystname=="徐妍")

可以处理analystname为“徐妍”的样本,但是ananlystname中包含徐妍及其他字符则不行。


在线等!挺急的!

最佳答案

少才 查看完整内容

replace rep = 1 if strmatch(rep,"*徐妍*")
关键词:Stata 虚拟变量 tata 通配符 Analyst 通配符

沙发
少才 发表于 2015-11-13 13:28:45

replace rep = 1 if strmatch(rep,"*徐妍*")

藤椅
wisdommingli 发表于 2015-11-13 21:48:29
你的命令应该是可行的,检查一下实际值中是否包含有空格,例如"*徐妍 *",这个不太容易发现。

板凳
白羽向 学生认证  发表于 2015-11-13 23:02:15 来自手机
wisdommingli 发表于 2015-11-13 21:48
你的命令应该是可行的,检查一下实际值中是否包含有空格,例如"*徐妍 *",这个不太容易发现。
这个是没有的,因为要筛选的姓名很多,一开始我就把空格都直接替换成命令了。。。

报纸
wisdommingli 发表于 2015-11-14 09:01:33
gene rep = 0
replace rep = 1 if (analystname=="*徐妍*")
我试过了,可行。

11.jpg (6.77 KB)

11.jpg

地板
intchen 发表于 2015-11-14 10:25:28
可用:
replace rep = 1 if strpos(analystname, "徐妍") > 0
或者:
replace rep = 1 if strmatch(analystname, "*徐妍*") == 1

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

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