全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
7681 15
2013-01-31
悬赏 1000 个论坛币 已解决
有如下格式面板数据,
ID        Date                   Var1           Var2
A         01/01/2001         0.61
A         02/01/2001         0.52
...
A         31/12/2010         0.96
...
B         01/01/2002         0.68
...
B         31/12/2009         0.72
...
Z         31/12/2010         0.66

对每一个ID的每一行,在Var2处,生成本ID Var1[_n-365]+...+Var1[_n-7],中间如果有缺失值,当成0处理。

按照以前我发的连乘的帖子中我写的那个循环程序是可以得出结果的,但是对于从[_n-365]一直相加到[_n-7],我写的那个循环的执行效率太低了。哪位有好办法么?

非常感谢!


sugmoo给了个不错的方法,运算速度非常快,我已评选为最佳,如果数据量大而没有缺失值,绝对是最好的方案。但是sum函数是把缺失值当0来处理。这个对我来说不是特别适用,没办法我自己也写了个循环程序如下,但是运行速度确实慢啊。

bys ID (Date): gen SUM1=Var1[_n-7]
forv i=2/358{
local j=`i'-1
bys ID (Date): gen SUM`i'=Var1[_n-7]+SUM`j'[_n-1]
}


最佳答案

sungmoo 查看完整内容

*与以往一样,楼主需要先说明计算规则。比如,数据中恰有366个观测值时,各观测值对应的结果应该是什么。 *当var1[_n-365]~var1[_n-7]存在缺失值或者无定义时,var2是缺失值;反之,var2为var1[_n-365]~var1[_n-7]之和。 bys id (date): g s=sum(var1) by id: g m=sum(var1==.) by id: g t=m[_n-7]-m[_n-366] if _n>366 by id: replace t=m[359] if _n==366 by id: g var2=s[_n-7]-s[_n-366] if _n>366&!t by id: repl ...
二维码

扫码加我 拉你入群

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

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

全部回复
2013-1-31 08:44:18
*与以往一样,楼主需要先说明计算规则。比如,数据中恰有366个观测值时,各观测值对应的结果应该是什么。

*当var1[_n-365]~var1[_n-7]存在缺失值或者无定义时,var2是缺失值;反之,var2为var1[_n-365]~var1[_n-7]之和。

bys id (date): g s=sum(var1)
by id: g m=sum(var1==.)
by id: g t=m[_n-7]-m[_n-366] if _n>366
by id: replace t=m[359] if _n==366
by id: g var2=s[_n-7]-s[_n-366] if _n>366&!t
by id: replace var2=s[359] if _n==366&!t
二维码

扫码加我 拉你入群

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

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

2013-1-31 09:19:41
连乘与连加是类似的。可以采用相同的思路:先求累加和,后隔n项求差即可。
二维码

扫码加我 拉你入群

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

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

2013-1-31 10:26:42
sungmoo 发表于 2013-1-31 09:19
连乘与连加是类似的。可以采用相同的思路:先求累加和,后隔n项求差即可。
但是您写的那个连乘我没完全看懂,我自己搞那个运行速度太慢
二维码

扫码加我 拉你入群

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

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

2013-1-31 10:39:50
循环语句能解决吧,其他也想不到。
二维码

扫码加我 拉你入群

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

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

2013-1-31 11:41:23
可不可以利用merge,在原有数据集上生成若干滞后的数据集,merge后相加
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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