SAS數(shù)據(jù)集排序

2018-12-14 17:28 更新

SAS中的數(shù)據(jù)集可以對其中存在的任何變量進行排序。 這有助于在數(shù)據(jù)分析和執(zhí)行其他選項,如合并等。排序可以發(fā)生在任何單個變量以及多個變量。 用于在SAS數(shù)據(jù)集中執(zhí)行排序的SAS過程被稱為PROC SORT。 排序后的結(jié)果存儲在新數(shù)據(jù)集中,原始數(shù)據(jù)集保持不變。

語法

SAS中數(shù)據(jù)集中排序操作的基本語法是:

PROC SORT DATA=original dataset OUT=Sorted dataset;
  BY variable name;

以下是使用的參數(shù)的描述:

  • 變量名是排序發(fā)生的列名。
  • 原始數(shù)據(jù)集是要排序的數(shù)據(jù)集名稱。
  • 排序的數(shù)據(jù)集是排序后的數(shù)據(jù)集名稱。

讓我們考慮包含組織的員工詳細信息的以下SAS數(shù)據(jù)集。 我們可以使用以下代碼對工資數(shù)據(jù)集進行排序。

DATA Employee; 
  INPUT empid name $ salary DEPT $ ; 
DATALINES; 
1 Rick 623.3	IT 		 
2 Dan 515.2 	OPS	
3 Mike 611.5 	IT 	
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
6 Tusar 578.6   IT 
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN 
;
RUN;

PROC SORT DATA=Employee OUT=Sorted_sal ;
  BY salary;
RUN ;
 
PROC PRINT DATA=Sorted_sal;
RUN ; 

當執(zhí)行上面的代碼,我們可以得到下面的輸出。

反向排序

默認排序選項按升序排列,這意味著觀察值按排序變量的較低值到較高值排列。 但我們也可能希望排序以升序發(fā)生。

在下面的代碼中,通過使用DESCENDING語句實現(xiàn)反向排序。

DATA Employee; 
  INPUT empid name $ salary DEPT $ ; 
DATALINES; 
1 Rick 623.3	IT 		 
2 Dan 515.2 	OPS	
3 Mike 611.5 	IT 	
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
6 Tusar 578.6   IT 
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN 
;
RUN;

PROC SORT DATA=Employee OUT=Sorted_sal_reverse ;
  BY DESCENDING salary;
RUN ;
 
PROC PRINT DATA=Sorted_sal_reverse;
RUN ; 

當執(zhí)行上面的代碼,我們可以得到下面的輸出。

排序多個變量

通過在BY語句中使用它們,可以對多個變量應(yīng)用排序。 變量以從左到右的優(yōu)先級排序。

在下面的代碼中,數(shù)據(jù)集首先在變量名稱上排序,然后在變量名稱salary上排序。

DATA Employee; 
  INPUT empid name $ salary DEPT $ ; 
DATALINES; 
1 Rick 623.3	IT 		 
2 Dan 515.2 	OPS	
3 Mike 611.5 	IT 	
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
6 Tusar 578.6   IT 
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN 
;
RUN;

PROC SORT DATA=Employee OUT=Sorted_dept_sal ;
  BY salary DEPT;
RUN ;
 
PROC PRINT DATA=Sorted_dept_sal;
RUN ; 

當執(zhí)行上面的代碼,我們可以得到下面的輸出。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號