楼主: fumingking
1668 4

[编程问题求助] 请问我这个程序为什么这么慢? [推广有奖]

  • 0关注
  • 0粉丝

高中生

62%

还不是VIP/贵宾

-

威望
0
论坛币
931 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
142 点
帖子
14
精华
0
在线时间
35 小时
注册时间
2010-9-29
最后登录
2019-6-9

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
程序如下,数据23W条,每个ryear有12条数据,跑了六七个小时(如果电脑没自动关机的话),请各位大大优化下,第一次编:
egen g = group(code)
qui sum g
local Ng = r(max)
gen count=.
gen res = .
forvalues g = 1/`Ng'{
egen t=group(ryear) if (g==`g')
replace count =t if  (g==`g')
qui sum count if (g==`g')
local Nt=r(max)
local Nm=r(min) +2
drop t
forvalues count = `Nm'/`Nt'{
  
gen window=.
replace window=1 if (count<`count' & count>`count'-3)
      cap qui reg return rmrf_tmv smb_tmv hml_tmv if (g==`g' & window==1)
          cap qui predict e if (g==`g' & count ==`count'),r
          cap qui replace res = e if (g==`g' & count ==`count')
drop e window
   }
}
二维码

扫码加我 拉你入群

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

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

关键词:forvalues forvalue replace Window values replace window local count 自动关机

沙发
heric221 在职认证  发表于 2015-8-15 12:42:47 |只看作者 |坛友微信交流群
看代码看晕了,帮顶吧。

使用道具

藤椅
andruw 在职认证  发表于 2015-8-15 16:29:25 |只看作者 |坛友微信交流群
楼主要实现什么目标,能否大致描述一下?

使用道具

板凳
luckykong 发表于 2015-8-16 22:10:51 |只看作者 |坛友微信交流群
循环太多了。
你看看能不能使用by XXX, reg ...的方式
另外,在循环里,如果只对某类数据分析,可以drop掉不关心的数据,以减小数据体积。
你的23w数据多大?看能否减小一下体积。受累于硬盘读写,数据太大的话,每次循环都会消耗太长时间。
已有 1 人评分经验 热心指数 收起 理由
夏目贵志 + 5 + 1 热心帮助其他会员

总评分: 经验 + 5  热心指数 + 1   查看全部评分

使用道具

报纸
luckykong 发表于 2015-8-16 22:12:11 |只看作者 |坛友微信交流群
还有一点,在感觉代码有问题时,不要用这么多qui ,有时候看着屏幕上的反馈,也能看得出执行到哪一步的时候最消耗时间。

使用道具

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

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

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

GMT+8, 2024-5-1 05:44