SAS:通过枚举创建类

时间:2017-10-17 14:05:50

标签: 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

2 个答案:

答案 0 :(得分:2)

您将使用两个主要工具:sqoop import \ --connect jdbc:mysql://XXXXXXXXXXX \ --driver com.mysql.jdbc.Driver \ --username XXXX \ --password XXXX \ --query "SELECT DR_NUMBER,DATE_REPORTED,DATE_OCCURED,TIME_OCCURED,AREA_ID,AREA_N AME,REPORTING_DISTRICT,CRIME_CODE,CRIME_CODE_DESC,VICTIM_AGE,VICTIM _GENDER,VICTIM_DESCENT,ADDRESS,CROSS_STREET,AUTO_ID FROM la_crime WHERE YEAR = 2016 AND $CONDITIONS" \ --target-dir /user/sqoop_script \ -m 1 函数和sum语句。 sum语句看起来像是不正确的语法,但它是mod的特殊情况。

retain是一个特殊变量,充当您的观察计数器。每当您的_N_步骤从上到下循环(即从datadata)时,run会逐一递增。

通过在_N_上使用mod,我们可以为结果为1的每两个观察值增加一个计数器。换句话说,如果将观察计数除以2并得到余数为1,然后将{1}添加到_N_

例如:

order

最终,我们正在进行一项操作,我们在特定条件下增加某些值,继续前进并重复。

此代码的外观如下:

_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

答案 1 :(得分:0)

在数据步骤中,您可以使用自动变量_n_,例如ceil(_n_/2)

在SQL中,monotonic()函数可以完成相同的工作。