楼主: shetianlang
2643 7

[编程问题求助] Nested loop + preserve的问题 [推广有奖]

  • 6关注
  • 10粉丝

讲师

53%

还不是VIP/贵宾

-

TA的文库  其他...

微观数据研讨

威望
0
论坛币
25708 个
通用积分
30.9727
学术水平
85 点
热心指数
94 点
信用等级
63 点
经验
16192 点
帖子
407
精华
0
在线时间
494 小时
注册时间
2008-11-27
最后登录
2023-1-5

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我想写一个nested loop来将数据分别保存下来,但代码老是出错。

麻烦高手帮忙看一下,错误在哪里。

  1. clear
  2. input id str2 ss year y
  3. 1 bg 2010 500
  4. 2 bh 2011 600
  5. 3 bg 2011 700
  6. 4 bp 2010 800
  7. 5 bp 2013 900
  8. 6 bh 2010 1000
  9. 7 bg 2012 1100
  10. 8 bp 2011 1200
  11. 9 bg 2013 1300
  12. 10 bp 2012 1400
  13. end


  14. foreach s in bp bg bh{

  15.    foreach t in 2010 2011 2012 2013{
  16.    preserve
  17.    keep if ss=`s' & year==`t'
  18.    save data`s'`t'

  19.    restore
  20. }
  21.    
  22. }
复制代码

错误是:already preserved
r(621);


感激不尽!

二维码

扫码加我 拉你入群

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

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

关键词:preserve Reserve nested Serve loop

回帖推荐

夏目贵志 发表于6楼  查看完整内容

第18行,ss是string,而且你原来的代码缺了一个等号。 至于不能preserve的问题。应该是你调试程序之前已经preserve过了。以后这样的情况,可以在程序最前面加一个cap restore或者cap restore, not。
文库:微观数据研讨
沙发
夏目贵志 发表于 2015-8-11 23:55:15 |只看作者 |坛友微信交流群
  1. clear
  2. input id str2 ss year y
  3. 1 bg 2010 500
  4. 2 bh 2011 600
  5. 3 bg 2011 700
  6. 4 bp 2010 800
  7. 5 bp 2013 900
  8. 6 bh 2010 1000
  9. 7 bg 2012 1100
  10. 8 bp 2011 1200
  11. 9 bg 2013 1300
  12. 10 bp 2012 1400
  13. end

  14. foreach s in bp bg bh{
  15.         foreach t in 2010 2011 2012 2013{
  16.                 preserve
  17.                 keep if ss=="`s'" & year==`t'
  18.                 save data`s'`t'
  19.                 restore
  20.         }
  21. }
复制代码

使用道具

藤椅
shetianlang 发表于 2015-8-11 23:58:50 |只看作者 |坛友微信交流群
夏目贵志 发表于 2015-8-11 23:55
你这是回答问题吗?我的代码一点儿都没有改!

使用道具

板凳
夏目贵志 发表于 2015-8-12 00:02:15 |只看作者 |坛友微信交流群
shetianlang 发表于 2015-8-11 23:58
你这是回答问题吗?我的代码一点儿都没有改!
你要是这么觉得我也没办法。。。

使用道具

报纸
shetianlang 发表于 2015-8-12 00:05:06 |只看作者 |坛友微信交流群
夏目贵志 发表于 2015-8-12 00:02
你要是这么觉得我也没办法。。。
哦,对不起啊,测试了没问题了。能解释一下怎么改的吗?非常感谢!

使用道具

地板
夏目贵志 发表于 2015-8-12 00:07:30 |只看作者 |坛友微信交流群
shetianlang 发表于 2015-8-12 00:05
哦,对不起啊,测试了没问题了。能解释一下怎么改的吗?非常感谢!
第18行,ss是string,而且你原来的代码缺了一个等号。
至于不能preserve的问题。应该是你调试程序之前已经preserve过了。以后这样的情况,可以在程序最前面加一个cap restore或者cap restore, not。

使用道具

7
shetianlang 发表于 2015-8-12 00:07:42 |只看作者 |坛友微信交流群
明白了,ss==

谢谢

使用道具

8
夏目贵志 发表于 2015-8-12 00:08:55 |只看作者 |坛友微信交流群
shetianlang 发表于 2015-8-12 00:07
明白了,ss==

谢谢
不客气~

使用道具

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

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

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

GMT+8, 2024-6-14 17:22