楼主: RUCLSD
11241 15

[编程问题求助] Stata用forvalues做循环的时候怎么跳过缺失值呢? [推广有奖]

  • 1关注
  • 1粉丝

大专生

5%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
22.5682
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
178 点
帖子
11
精华
0
在线时间
62 小时
注册时间
2015-2-7
最后登录
2017-10-12

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
请问forvalues做循环的时候怎么跳过缺失值呢?
比如:

forvalues i=1/5{

use "C/Desktop/Statistic/data`i'.dta",clear

drop if var1==0

save "C/Desktop/Statistic/newdata_`j'",replace

}



我在Statistic这个文件夹里只有data1、data2、data3、data5这四个数据,要怎么实现跳过`i'==4,而直接到`i'==5呢?


之前用过【capture】如下:

forvalues i=1/5{

capture use "C/Desktop/Statistic/data`i'.dta",clear

drop if var1==0

save "C/Desktop/Statistic/newdata_`j'",replace

}

结果还是生成了5个newdata,其中第四个使用了第三个的数据。


二维码

扫码加我 拉你入群

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

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

关键词:forvalues forvalue values value Stata

沙发
吴一 发表于 2016-6-2 00:03:52 |只看作者 |坛友微信交流群
最简单的办法是把data5文件名称改成data4

使用道具

藤椅
rudi 发表于 2016-6-2 01:20:21 |只看作者 |坛友微信交流群
help capture

使用道具

板凳
RUCLSD 学生认证  发表于 2016-6-2 22:07:07 |只看作者 |坛友微信交流群
rudi 发表于 2016-6-2 01:20
help capture
我用过了,capture不能跳过那个缺失值啊

使用道具

报纸
rudi 发表于 2016-6-2 22:54:32 |只看作者 |坛友微信交流群
RUCLSD 发表于 2016-6-2 22:07
我用过了,capture不能跳过那个缺失值啊
可以试试 capture noisily,查看错误信息是什么

使用道具

地板
RUCLSD 学生认证  发表于 2016-6-2 23:11:15 |只看作者 |坛友微信交流群
rudi 发表于 2016-6-2 22:54
可以试试 capture noisily,查看错误信息是什么
capture noisily这个命令并没有反应啊
stata并没有报错,就是我已开始问的那个问题,i=1/5,我的原数据文件只有1235.如果capture可以跳过i==4为什么新生产的数据会出现4

求大神帮忙~

使用道具

7
rudi 发表于 2016-6-3 00:37:37 |只看作者 |坛友微信交流群
我尝试了一下,用capture noisily 会报错 file data4.dta not found,并跳过直接运行下一个循环。

我怀疑你是不是save "C/Desktop/Statistic/newdata_`j'",replace 里面的 local 搞错了,前面是 i,后面怎么变成 j 了?

另外也可以用 foreach

使用道具

8
ywh19860616 发表于 2016-6-3 09:47:17 |只看作者 |坛友微信交流群
RUCLSD 发表于 2016-6-2 23:11
capture noisily这个命令并没有反应啊
stata并没有报错,就是我已开始问的那个问题,i=1/5,我的原数据文 ...
  1. forvalues i=1/5{
  2. capture use "C/Desktop/Statistic/data`i'.dta",clear
  3. if !_rc {
  4. drop if var1==0
  5. save "C/Desktop/Statistic/newdata_`j'",replace
  6. }
  7. }
复制代码

已有 2 人评分经验 学术水平 热心指数 信用等级 收起 理由
momingqimiao7 + 5 + 5 + 5 精彩帖子
Captain-CUI + 60 + 1 + 1 精彩帖子

总评分: 经验 + 60  学术水平 + 6  热心指数 + 6  信用等级 + 5   查看全部评分

使用道具

9
RUCLSD 学生认证  发表于 2016-6-3 10:29:33 |只看作者 |坛友微信交流群
rudi 发表于 2016-6-3 00:37
我尝试了一下,用capture noisily 会报错 file data4.dta not found,并跳过直接运行下一个循环。

我怀疑 ...
是会报错,但是还是生成了5个文件诶,ywh19860616的命令可以解决这个问题~

使用道具

10
RUCLSD 学生认证  发表于 2016-6-3 10:30:39 |只看作者 |坛友微信交流群
ywh19860616 发表于 2016-6-3 09:47
完美解决,谢谢谢谢~

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-5 15:07