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)