使用sas获取数据步骤中的行号

9 sas

有没有办法做一个过分区来获取sas上的行号?在sql我会像:

  Select region,company, ROW_NUMBER()  OVER(PARTITION BY region ORDER BY Name)
    From companyData;
Run Code Online (Sandbox Code Playgroud)

我希望最好在数据集中这样做

isJ*_*tMe 8

您可以使用by语句轻松地在数据步骤中执行此操作,并执行运行总和:

proc sort data=myData; by region name; run;

Data myData;
Set myData;
By company;
if first. company then n=1;
   else n+1;
run;
Run Code Online (Sandbox Code Playgroud)

另外,为了使用内置功能,您可以使用内置功能:

DATA COMPANYDATA;
SET COMPANYDATA;
ROW_NUM=_N_;    
RUN;
Run Code Online (Sandbox Code Playgroud)

正如Joe提到的那样,您可能希望根据在该分组中获得多少障碍来设置row_num的格式.