- 在线时间
- 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函数的运行机制大概是这样:+ S5 N, h7 o4 t6 Y% g; W* x8 B
1.lag(x)是一个队列(queue)函数,每次执行,从队列的起始读取数值并将该值移除出队列,队列中的剩余值上移,x的当前值进入队列末尾。因此首次执行后,lag(x)值为missing,队列中只有1个值--即x的当前值。0 S3 _0 ~3 I7 j8 l+ E! H" n
2.只有当lag(x)被执行后,x的当前值才会被读入队列中。因此,如果使用条件语句,不符合条件时,lag(x)不被执行,当前的x值也不会进入队列,从而不会出现在lag(x)的结果中。' J" F4 E4 g, f, N; ~! ?6 I
3.SAS语句内的lag函数是无关的,即使执行的是同样的lag(x)。
$ l5 G9 d+ u0 h' H/ [; S5 E) f8 X
! {. H0 T- d7 \http://support.sas.com/documentation/cd ... 212547.htm! M: ?) d/ d: |# B. [; i
http://support.sas.com/documentation/cd ... ect048.htm5 @* m8 v5 b8 L8 Z
http://support.sas.com/forums/thread.js ... 673) G0 x4 v9 o/ o D
' | g7 l7 O" R7 y' U
$ v7 @3 J2 \: N7 s( m9 H6 a* w输出结果:3 P" I7 n$ S3 V7 u. i/ D& y0 D( l
Obs x y1 y2 y3 z1 z2 z3 z4 z5 z6
Z% ~$ D/ t- }) j: d" E' ?0 q, Q5 w' }# L9 d( `
1 1 . 1 1 . . . . . .
2 F/ t: T) R" H+ {2 w I' F( k 2 2 1 1 2 1 . 1 1 . 1
$ F" q2 H& r" b+ e6 M2 I 3 3 2 1 3 2 2 2 2 2 .% |+ x: y: x" r$ v. E9 n. a4 T* B* D
4 4 3 1 4 3 3 3 3 3 .# K3 N" k3 S0 k$ f9 k; y, K& {
5 5 4 1 5 4 4 4 4 4 21 p* v: q1 }6 r _6 t
6 6 5 1 6 5 5 5 5 5 5* V1 y) Y: P2 a$ V5 H
" f9 i4 I) L8 N& e2 q1 Z5 @
5 D+ |; I+ Y3 A0 _6 G |
zan
|