建不了的模。 发表于 2014-9-25 10:14

lag函数的运行机制

找了一些资料,发现lag函数的运行机制大概是这样:
1.lag(x)是一个队列(queue)函数,每次执行,从队列的起始读取数值并将该值移除出队列,队列中的剩余值上移,x的当前值进入队列末尾。因此首次执行后,lag(x)值为missing,队列中只有1个值--即x的当前值。
2.只有当lag(x)被执行后,x的当前值才会被读入队列中。因此,如果使用条件语句,不符合条件时,lag(x)不被执行,当前的x值也不会进入队列,从而不会出现在lag(x)的结果中。
3.SAS语句内的lag函数是无关的,即使执行的是同样的lag(x)。

http://support.sas.com/documentation/cd ... 212547.htm
http://support.sas.com/documentation/cd ... ect048.htm
http://support.sas.com/forums/thread.js ... 673⶙

**** Hidden Message *****
输出结果:
                          Obs    x    y1    y2    y3    z1    z2    z3    z4    z5    z6

                           1     1     .     1     1     .     .     .     .     .     .
                           2     2     1     1     2     1     .     1     1     .     1
                           3     3     2     1     3     2     2     2     2     2     .
                           4     4     3     1     4     3     3     3     3     3     .
                           5     5     4     1     5     4     4     4     4     4     2
                           6     6     5     1     6     5     5     5     5     5     5


ゞ_轻描丶幸福的 发表于 2014-9-25 15:55

这个不太懂啊   学习一下吧

深V礼 发表于 2014-9-25 17:12

干的漂亮,发帖多多,收获多多

心碎的科学 发表于 2014-9-25 22:47

kankan
页: [1]
查看完整版本: lag函数的运行机制