- 在线时间
- 1084 小时
- 最后登录
- 2015-9-10
- 注册时间
- 2014-4-18
- 听众数
- 162
- 收听数
- 1
- 能力
- 10 分
- 体力
- 43980 点
- 威望
- 6 点
- 阅读权限
- 255
- 积分
- 15251
- 相册
- 0
- 日志
- 0
- 记录
- 1
- 帖子
- 3471
- 主题
- 2620
- 精华
- 1
- 分享
- 0
- 好友
- 513
升级   0% TA的每日心情 | 开心 2015-3-12 15:35 |
|---|
签到天数: 207 天 [LV.7]常住居民III
 群组: 第六届国赛赛前冲刺培 群组: 国赛讨论 群组: 2014美赛讨论 群组: 2014研究生数学建模竞 群组: 数学中国试看培训视频 |
找了一些资料,发现lag函数的运行机制大概是这样:: l, y3 H0 T8 Q7 O& Q
1.lag(x)是一个队列(queue)函数,每次执行,从队列的起始读取数值并将该值移除出队列,队列中的剩余值上移,x的当前值进入队列末尾。因此首次执行后,lag(x)值为missing,队列中只有1个值--即x的当前值。$ Q) B4 p X4 |% ~9 d' x
2.只有当lag(x)被执行后,x的当前值才会被读入队列中。因此,如果使用条件语句,不符合条件时,lag(x)不被执行,当前的x值也不会进入队列,从而不会出现在lag(x)的结果中。& w5 P' u+ ?( Z- {4 g
3.SAS语句内的lag函数是无关的,即使执行的是同样的lag(x)。/ X, t& _+ \5 y3 J* A
- e! U g% y; D# _% o1 m* A* a
http://support.sas.com/documentation/cd ... 212547.htm+ C: a/ k; V! G# o Y( L
http://support.sas.com/documentation/cd ... ect048.htm" } p% R( a: D/ p1 o: g
http://support.sas.com/forums/thread.js ... 673: g+ `& t4 o* S2 y
# T5 g% N Z K( R- C( q' J3 Z% M* `# G! Y0 i) [
输出结果:1 L6 o- s6 _9 M. W' ~$ k
Obs x y1 y2 y3 z1 z2 z3 z4 z5 z69 g2 y9 o& [/ u! V& _
~# z( x$ H7 q
1 1 . 1 1 . . . . . .
" T8 z5 F, i9 |2 e# l9 I 2 2 1 1 2 1 . 1 1 . 1
+ i% S- f# D2 c x9 F1 @3 C' y4 ~" I" I v# f 3 3 2 1 3 2 2 2 2 2 .
5 Y4 K8 [6 f* r$ o5 V0 B: I 4 4 3 1 4 3 3 3 3 3 .; @4 `1 O) d; | L: [0 o
5 5 4 1 5 4 4 4 4 4 23 d# t' Q) ? h4 A- Q$ _' b
6 6 5 1 6 5 5 5 5 5 54 E8 J3 n6 ~; ~& X! P; v$ w
# h4 f2 v! I8 F8 T+ {$ q
2 Y3 m" q/ M5 u3 }( P+ ]9 N" n1 K
|
zan
|