- 在线时间
- 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函数的运行机制大概是这样:( H5 t! G# I3 Q5 C, e' Q
1.lag(x)是一个队列(queue)函数,每次执行,从队列的起始读取数值并将该值移除出队列,队列中的剩余值上移,x的当前值进入队列末尾。因此首次执行后,lag(x)值为missing,队列中只有1个值--即x的当前值。& @$ B0 R. ~5 p0 X' W5 D! F
2.只有当lag(x)被执行后,x的当前值才会被读入队列中。因此,如果使用条件语句,不符合条件时,lag(x)不被执行,当前的x值也不会进入队列,从而不会出现在lag(x)的结果中。
' w2 ~+ F) W6 g7 n5 m+ l5 P+ i$ T3.SAS语句内的lag函数是无关的,即使执行的是同样的lag(x)。7 x! B9 a8 b; U9 [
+ D/ `& M2 E0 h" ?7 F" X
http://support.sas.com/documentation/cd ... 212547.htm1 e9 Z1 A1 B+ J% R; V2 Z
http://support.sas.com/documentation/cd ... ect048.htm! d" I! E+ S" z3 n4 O
http://support.sas.com/forums/thread.js ... 673
% @0 p# S; J0 A/ p- Q' K+ m! W
1 F) z8 {9 R2 ]1 r
# T& k1 F+ s5 h$ E9 G7 P# w$ g输出结果:. X6 e8 Z& i2 b0 ~# F, I+ b
Obs x y1 y2 y3 z1 z2 z3 z4 z5 z6
% t) q& R3 g2 z4 d3 |: P/ W' Z3 Y) W$ D x# B4 d% T1 A/ d" H: x; e
1 1 . 1 1 . . . . . .7 M4 Z& O8 M; a& M3 h. J% w. y8 [
2 2 1 1 2 1 . 1 1 . 1% ~ Q4 \ c5 T( `7 z! U
3 3 2 1 3 2 2 2 2 2 .2 v9 [% E* V) Q) P, g% ]
4 4 3 1 4 3 3 3 3 3 .
$ J$ w- F, }2 y 5 5 4 1 5 4 4 4 4 4 2' W& J% l q3 n/ l/ M3 Z: J9 p# X8 Z
6 6 5 1 6 5 5 5 5 5 5% q1 e! {3 U$ \8 p. D6 ~
7 H1 B! _& z; D" f
& L4 o: t- E4 g% P |
zan
|