- 在线时间
- 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函数的运行机制大概是这样:
' v3 O1 ?/ k) E# J0 s! }1.lag(x)是一个队列(queue)函数,每次执行,从队列的起始读取数值并将该值移除出队列,队列中的剩余值上移,x的当前值进入队列末尾。因此首次执行后,lag(x)值为missing,队列中只有1个值--即x的当前值。3 [3 Q& v" a+ c( O) ^4 S s9 N
2.只有当lag(x)被执行后,x的当前值才会被读入队列中。因此,如果使用条件语句,不符合条件时,lag(x)不被执行,当前的x值也不会进入队列,从而不会出现在lag(x)的结果中。
& q8 w, M0 l v6 S; U3.SAS语句内的lag函数是无关的,即使执行的是同样的lag(x)。
" d* c1 D# h! D" P# D; r, F
9 B( T8 x" e H' phttp://support.sas.com/documentation/cd ... 212547.htm
; f4 G r3 X2 v9 a V3 ]# |http://support.sas.com/documentation/cd ... ect048.htm2 k5 V" @. h% U! i4 w( A
http://support.sas.com/forums/thread.js ... 673
. p1 H. A( z; `6 u: G: @$ V8 O& c+ r5 ?3 D9 c. O2 O9 w9 M
$ n- ~* i0 Q8 z0 h0 B
输出结果:6 d: E& ]& z& b2 @5 h' f G) M
Obs x y1 y2 y3 z1 z2 z3 z4 z5 z60 ~# R R$ }" ]1 h/ K% u( y" a5 s" [
+ `8 H- E1 x: y% ~! i! J
1 1 . 1 1 . . . . . . o, V# R+ r4 r; Z2 x" A( o. M/ |3 b6 }
2 2 1 1 2 1 . 1 1 . 13 | f3 m- K' r! W; j1 n8 M
3 3 2 1 3 2 2 2 2 2 .
/ g6 Q8 a2 d. E0 M: O9 ?% ^ 4 4 3 1 4 3 3 3 3 3 .5 n$ E _0 k" Q1 h7 K* i& ?
5 5 4 1 5 4 4 4 4 4 2
3 A2 n( i4 n1 T! F5 s& Q 6 6 5 1 6 5 5 5 5 5 5* Z+ f% @0 \ s7 c5 V. |# F
8 c6 m+ z. W: {. C' q2 r: c6 t7 X
$ O+ ]% }$ A9 N) O, i |
zan
|