我有一个时间序列,需要以60天为一个时间段来求某变量的最大值及其序号。
我要根据每个时间段的最大值来求解该时间段内的最大收益差
因为时间段之间大部分是有间隔的,也有些时间段可能存在重叠。所以我想将每个时间段的最大值及其序号,赋值给该时间段的第一个观测值以此来方便之后的计算
求问我该怎么把最大值及其序号赋值给该时间段的第一个观测值?
举个例子,比方说某个时间段是从20150101开始的,我希望得到的数据格式:
时间 收益 最大值 最大值序号
20150101 0.5 0.8 24
20150102 0.6 . .
… … … …
20150228 0.4 . .
之前有帖子提过相似问题,但需要sort,我的数据量太大,而且时间段很多,sort起来太慢了
我自己的想法是:
forv i=1/n{
gen id=_n if daily<=0 & daily>=60 & stock==z
egen maxc=max(Clsprc) if id!=.
replace maxc_id=id if maxc==Clsprc
}
但我不知道怎么把id赋值给第一个观测值?
求问各位高手该怎么编程?