全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
1977 4
2015-08-15
程序如下,数据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
   }
}
二维码

扫码加我 拉你入群

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

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

全部回复
2015-8-15 12:42:47
看代码看晕了,帮顶吧。
二维码

扫码加我 拉你入群

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

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

2015-8-15 16:29:25
楼主要实现什么目标,能否大致描述一下?
二维码

扫码加我 拉你入群

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

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

2015-8-16 22:10:51
循环太多了。
你看看能不能使用by XXX, reg ...的方式
另外,在循环里,如果只对某类数据分析,可以drop掉不关心的数据,以减小数据体积。
你的23w数据多大?看能否减小一下体积。受累于硬盘读写,数据太大的话,每次循环都会消耗太长时间。
二维码

扫码加我 拉你入群

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

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

2015-8-16 22:12:11
还有一点,在感觉代码有问题时,不要用这么多qui ,有时候看着屏幕上的反馈,也能看得出执行到哪一步的时候最消耗时间。
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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