SAS:通过枚举创建类
这可能是个简单的问题 我需要创建一个类似于顺序的变量,但只有在每秒钟观察一次之后,顺序才会增加 提前谢谢SAS:通过枚举创建类,sas,Sas,这可能是个简单的问题 我需要创建一个类似于顺序的变量,但只有在每秒钟观察一次之后,顺序才会增加 提前谢谢 date order 1-1-10 1 2-1-10 1 3-1-10 2 4-1-10 2 5-1-10 3 6-1-10 3 7-1-10 4 7-1-10 4 etc 在数据步骤中,您可以使用自动变量\u n\u,例如ceil(\u n\u/2) 在SQL中,monotonic()函数可以做同样的工作。您将使用两个主要工具:函数和sum语句。s
date order
1-1-10 1
2-1-10 1
3-1-10 2
4-1-10 2
5-1-10 3
6-1-10 3
7-1-10 4
7-1-10 4
etc
在数据步骤中,您可以使用自动变量
\u n\u
,例如ceil(\u n\u/2)
在SQL中,
monotonic()
函数可以做同样的工作。您将使用两个主要工具:函数和sum语句。sum语句看起来语法不正确,但它是retain
的特例
是一个特殊变量,用作观察计数器。每次数据
步骤从上到下循环(即从数据
到运行
)时,\N\uu
增量为1
通过使用上的mod
,我们可以为结果为1的每两个观测值增加一个计数器。换句话说,如果将观察计数除以2,得到1的余数,则将1添加到顺序中
例如:
_N_ _N_/2 Remainder Operation Value
1 1/2 1 0+1 1
2 2/2 0 N/A 1
3 3/2 1 1+1 2
4 4/2 0 N/A 2
5 5/2 1 2+1 3
6 6/2 0 N/A 3
最终,我们在做一个操作,在特定条件下增加一些值,将其向前推进,然后重复
此代码的外观:
data want;
set have;
if(mod(_N_, 2) = 1) then order+1;
run;
或者,由于mod(int,2)返回0或1,您可以简单地使用order+mod(_N_,2)代码>