全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
5829 10
2012-11-26
想根据一个字符变量xx生成一个虚拟变量d1,如果xx有值,则d1取值为1,否则取0,但是通过下面的命令总是不能达到我的想法:
gen d1=0
replace d1=1 if xx!=""
用这句命令的结果是d1的全部取值均为1,也就是说根据这个结果xx的所有观测都有值,但是通过肉眼直观的观察xx是有一个缺失值的,这是为什么?经过仔细检查分析,发现xx里面的缺失值是用一个类似空格的东西表示的,肉眼看不到,将鼠标定义到缺失值单元格里,然后按住鼠标拖拽会有如图的反映。这就是所有的d1都变成1的原因。然后追踪到原始的放在excel文件中的数据,执行同样的操作得到的图形如下:然后把这个黑色长块黏贴到word中却什么都没有。可以在excel中用查找替换功能将那个全部替换为空,只要将不可见符号复制粘贴到查找框里就行了。然后再将数据导入到stata中就可以了。
未命名.GIF 未命名.GIF
二维码

扫码加我 拉你入群

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

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

全部回复
2012-11-26 12:05:39
把数据xx单独贴出来,看看到底是什么?
应该有比你这更简单的方法
二维码

扫码加我 拉你入群

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

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

2012-11-26 16:45:01
你看下,excel里面有数据。
附件列表

data.xls

大小:16 KB

 马上下载

二维码

扫码加我 拉你入群

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

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

2012-11-26 16:45:53
蓝色 发表于 2012-11-26 12:05
把数据xx单独贴出来,看看到底是什么?
应该有比你这更简单的方法
呵呵!把数据放到3楼了。
二维码

扫码加我 拉你入群

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

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

2012-11-26 23:30:18
有有空格存在
replace xx1=subinstr(xx1," ","",.)
replace xx2=subinstr(xx2," ","",.)
二维码

扫码加我 拉你入群

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

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

2012-11-27 00:48:32
1.你那个是字符型变量,空格是看不到的;
2、如果有空格,空格既然是字符就有长度,不同长度空格是不能用一个命令的,所有你那样替换当然不行了。

clear
gen length1=length(xx1)
gen length2=length(xx2)
list
gen d2=1
replace d2=0 if xx2=="  "         /*2 blank*/
replace d2=0 if xx2==" "         /*1 blank*/
replace d2=0 if xx2==""           /*0 blank*/
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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