- 在线时间
- 1084 小时
- 最后登录
- 2015-9-10
- 注册时间
- 2014-4-18
- 听众数
- 162
- 收听数
- 1
- 能力
- 10 分
- 体力
- 43976 点
- 威望
- 6 点
- 阅读权限
- 255
- 积分
- 15250
- 相册
- 0
- 日志
- 0
- 记录
- 1
- 帖子
- 3471
- 主题
- 2620
- 精华
- 1
- 分享
- 0
- 好友
- 513
升级   0% TA的每日心情 | 开心 2015-3-12 15:35 |
---|
签到天数: 207 天 [LV.7]常住居民III
 群组: 第六届国赛赛前冲刺培 群组: 国赛讨论 群组: 2014美赛讨论 群组: 2014研究生数学建模竞 群组: 数学中国试看培训视频 |
找了一些资料,发现lag函数的运行机制大概是这样:3 `5 e3 B) M# f4 C" `; K' m
1.lag(x)是一个队列(queue)函数,每次执行,从队列的起始读取数值并将该值移除出队列,队列中的剩余值上移,x的当前值进入队列末尾。因此首次执行后,lag(x)值为missing,队列中只有1个值--即x的当前值。
! S9 y* N! M7 L0 @" k- c2.只有当lag(x)被执行后,x的当前值才会被读入队列中。因此,如果使用条件语句,不符合条件时,lag(x)不被执行,当前的x值也不会进入队列,从而不会出现在lag(x)的结果中。
2 R) h, E+ A/ s. F# e; Y7 J; V$ J3.SAS语句内的lag函数是无关的,即使执行的是同样的lag(x)。# Y; [9 E) a, p$ a0 l- c
, s+ g' G; ]4 Q) B" fhttp://support.sas.com/documentation/cd ... 212547.htm
2 [, Q, g2 Q2 lhttp://support.sas.com/documentation/cd ... ect048.htm
. O$ D% l! j) ~7 ]5 ^2 Z: t! n1 zhttp://support.sas.com/forums/thread.js ... 673* v/ m% {( _& R* W" [$ R; \# f+ t+ {# R
X* O* ~% }7 l8 E: b
4 z5 `! B* u+ L& ^) r7 M7 d0 |
输出结果:, {) f9 X: K; M! i; x: ]& w: D2 X
Obs x y1 y2 y3 z1 z2 z3 z4 z5 z63 e" K4 ?( J* Q- A. h1 s
4 K j* T9 m, L/ q& B& [/ r
1 1 . 1 1 . . . . . .0 v! e' u! R' k1 ~) k1 A- v
2 2 1 1 2 1 . 1 1 . 1
9 V9 c7 I( P5 e; ?$ n 3 3 2 1 3 2 2 2 2 2 .
" E; G# l4 l6 C+ e 4 4 3 1 4 3 3 3 3 3 .6 h& x0 b) R& l
5 5 4 1 5 4 4 4 4 4 24 y; ~+ ?7 l0 @( S! Y- M7 Q
6 6 5 1 6 5 5 5 5 5 5
" w" N& z- a$ v; i
) [7 p8 k4 X4 w% K% b% u1 u; e8 e4 S, x, m% _$ e: _3 R: _! r( ]
|
zan
|