楼主: emma1102010204
1377 5

[编程问题求助] stata编程问题 [推广有奖]

  • 0关注
  • 0粉丝

小学生

14%

还不是VIP/贵宾

-

威望
0
论坛币
563 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
43 点
帖子
2
精华
0
在线时间
7 小时
注册时间
2014-11-21
最后登录
2017-8-7

楼主
emma1102010204 发表于 2016-4-23 13:50:10 |AI写论文
20论坛币
QQ图片20160423133602.jpg 数据如图片所示,PubTime是日期,non_tradeday=1表明当天是非交易日,现在要将变量n的非交易日数据累加至下一个最近的交易日。比如,处理完后,n的第20个观测值应当变为10,因为前两天都是非交易日。希望各位大神帮帮我!!!

关键词:stata编程 Stata tata Traded Trade 交易日 天都 图片

沙发
dqlcsm 发表于 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'
   }
}
已有 1 人评分经验 热心指数 收起 理由
夏目贵志 + 10 + 2 热心帮助其他会员

总评分: 经验 + 10  热心指数 + 2   查看全部评分

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

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

报纸
dqlcsm 发表于 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'
   }
}

地板
dqlcsm 发表于 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'
   }
}

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-9 11:52