- 在线时间
- 1084 小时
- 最后登录
- 2015-9-10
- 注册时间
- 2014-4-18
- 听众数
- 162
- 收听数
- 1
- 能力
- 10 分
- 体力
- 43953 点
- 威望
- 6 点
- 阅读权限
- 255
- 积分
- 15243
- 相册
- 0
- 日志
- 0
- 记录
- 1
- 帖子
- 3471
- 主题
- 2620
- 精华
- 1
- 分享
- 0
- 好友
- 513
升级 0% TA的每日心情 | 开心 2015-3-12 15:35 |
---|
签到天数: 207 天 [LV.7]常住居民III
群组: 第六届国赛赛前冲刺培 群组: 国赛讨论 群组: 2014美赛讨论 群组: 2014研究生数学建模竞 群组: 数学中国试看培训视频 |
找了一些资料,发现lag函数的运行机制大概是这样:
7 O: Y. b# o1 I2 Q' I; a, \8 Z1.lag(x)是一个队列(queue)函数,每次执行,从队列的起始读取数值并将该值移除出队列,队列中的剩余值上移,x的当前值进入队列末尾。因此首次执行后,lag(x)值为missing,队列中只有1个值--即x的当前值。
! e4 c+ d6 N- j. A% M2.只有当lag(x)被执行后,x的当前值才会被读入队列中。因此,如果使用条件语句,不符合条件时,lag(x)不被执行,当前的x值也不会进入队列,从而不会出现在lag(x)的结果中。
# R7 x4 E6 X. k- v9 M7 B+ X3.SAS语句内的lag函数是无关的,即使执行的是同样的lag(x)。3 Q r4 X C+ a; R6 t" |
1 e# ^0 M! a* i2 u) j5 i4 f, I) Y. j
http://support.sas.com/documentation/cd ... 212547.htm: U2 e. i9 V+ @ l
http://support.sas.com/documentation/cd ... ect048.htm
: ?5 t# @3 Y Q rhttp://support.sas.com/forums/thread.js ... 673* H1 R- {( A# M4 Z& W8 K
: g1 w m3 }9 P* O3 Y6 p
0 I% J! v U( S, ?9 Q4 g
输出结果: |: O! m0 {5 b: t
Obs x y1 y2 y3 z1 z2 z3 z4 z5 z6/ L5 S( L% j! e: o: P( v. m# [9 n
( d' n# `3 {6 c0 x1 e 1 1 . 1 1 . . . . . .) d J- a% l2 _' s) A
2 2 1 1 2 1 . 1 1 . 1
0 J8 N: Y5 Q6 L" ?5 Q$ P _0 \ 3 3 2 1 3 2 2 2 2 2 ., r* H* q2 O$ I) d0 D% k
4 4 3 1 4 3 3 3 3 3 .% u9 d$ M$ _9 y! C
5 5 4 1 5 4 4 4 4 4 2
- w- s* E% `4 z2 w& o 6 6 5 1 6 5 5 5 5 5 5
) W: ]8 O, o9 p- ~# L/ L, f+ Q, `& p9 S. \8 `/ ^, ?
+ U! I. n- y$ z: y9 l& N
|
zan
|