lag:返回的是上一次lag函数运行时的实参,即lag(argument)=上一次lag函数执行时的argument

retain:对变量进行值的初始化和保留到下一个迭代步

_n_:data步的自动变量,_n_表示观测的序号

SAS学习笔记4 基本运算语句(lag、retain、_n_函数)-LMLPHP

SAS学习笔记4 基本运算语句(lag、retain、_n_函数)-LMLPHP

retain函数

SAS学习笔记4 基本运算语句(lag、retain、_n_函数)-LMLPHP

SAS学习笔记4 基本运算语句(lag、retain、_n_函数)-LMLPHP

SAS学习笔记4 基本运算语句(lag、retain、_n_函数)-LMLPHP

SAS学习笔记4 基本运算语句(lag、retain、_n_函数)-LMLPHP

lag函数

SAS学习笔记4 基本运算语句(lag、retain、_n_函数)-LMLPHP

SAS学习笔记4 基本运算语句(lag、retain、_n_函数)-LMLPHP

大家也许会简单的以为lag函数返回当前数据的上一个值,其实不是,看下面的例子

SAS学习笔记4 基本运算语句(lag、retain、_n_函数)-LMLPHP

SAS学习笔记4 基本运算语句(lag、retain、_n_函数)-LMLPHP

为什么lag(3)是空的呢,3的上一个值不是1吗?所以,记住:lag返回的是上一次lag函数运行时的实参,即lag(argument)=上一次lag函数执行时的argument。在这个例子中,因为只有当x>2时才会调用lag,所以第一次调用lag时,x=3;当x=5时,第二次调用lag,此时lag(5)=3

另外,根据lag可以推测出lag2,lag3的用法

05-14 23:19