全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
1354 5
2016-04-23
悬赏 20 个论坛币 未解决
QQ图片20160423133602.jpg 数据如图片所示,PubTime是日期,non_tradeday=1表明当天是非交易日,现在要将变量n的非交易日数据累加至下一个最近的交易日。比如,处理完后,n的第20个观测值应当变为10,因为前两天都是非交易日。希望各位大神帮帮我!!!
二维码

扫码加我 拉你入群

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

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

全部回复
2016-4-23 20:46:19
可以怎么写,
gen t=_n
tsset t
sum t
forvalues i=2/r(N){
  local n=`i'-1
  local m=`i'+1
  if non_tradeday[`i']==1&non_tradeday[`n']{
       replace n=L.non_tradeday+L2.non_tradeday in `m'/`m'
   }
}
二维码

扫码加我 拉你入群

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

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

2016-4-28 20:18:57
dqlcsm 发表于 2016-4-23 20:46
可以怎么写,
gen t=_n
tsset t
跑过之后,stata显示invalid syntax。
二维码

扫码加我 拉你入群

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

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

2016-4-28 22:37:33
emma1102010204 发表于 2016-4-28 20:18
跑过之后,stata显示invalid syntax。
不好意思,写漏了一句if non_tradeday[`i']==1&non_tradeday[`n']==1
二维码

扫码加我 拉你入群

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

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

2016-4-28 22:41:51
dqlcsm 发表于 2016-4-28 22:37
不好意思,写漏了一句if non_tradeday[`i']==1&non_tradeday[`n']==1
我改一下
gen t=_n
tsset t
sum t
forvalues i=2/r(N){
  local n=`i'-1
  local m=`i'+1
  if non_tradeday[`i']==1 & non_tradeday[`n']==1{
       replace n=L.n+L2.n+n in `m'/`m'
   }
}
二维码

扫码加我 拉你入群

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

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

2016-4-28 22:56:48
emma1102010204 发表于 2016-4-28 20:18
跑过之后,stata显示invalid syntax。
不好意思,刚才改的时候没有测试过我,下面代码是我测试过了,应该可以用
gen t=_n
tsset t
sum t
forvalues i=2/`r(N)'{
  local n=`i'-1
  local m=`i'+1
  if non_tradeday[`i']==1 & non_tradeday[`n']==1{
       replace n=L.n+L2.n+n in `m'/`m'
   }
}
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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