SAS中的數(shù)據(jù)集可以對(duì)其中存在的任何變量進(jìn)行排序。 這有助于在數(shù)據(jù)分析和執(zhí)行其他選項(xiàng),如合并等。排序可以發(fā)生在任何單個(gè)變量以及多個(gè)變量。 用于在SAS數(shù)據(jù)集中執(zhí)行排序的SAS過(guò)程被稱(chēng)為PROC SORT。 排序后的結(jié)果存儲(chǔ)在新數(shù)據(jù)集中,原始數(shù)據(jù)集保持不變。
SAS中數(shù)據(jù)集中排序操作的基本語(yǔ)法是:
PROC SORT DATA=original dataset OUT=Sorted dataset; BY variable name;
以下是使用的參數(shù)的描述:
讓我們考慮包含組織的員工詳細(xì)信息的以下SAS數(shù)據(jù)集。 我們可以使用以下代碼對(duì)工資數(shù)據(jù)集進(jì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 ; BY salary; RUN ; PROC PRINT DATA=Sorted_sal; RUN ;
當(dāng)執(zhí)行上面的代碼,我們可以得到下面的輸出。
默認(rèn)排序選項(xiàng)按升序排列,這意味著觀察值按排序變量的較低值到較高值排列。 但我們也可能希望排序以升序發(fā)生。
在下面的代碼中,通過(guò)使用DESCENDING語(yǔ)句實(shí)現(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 ;
當(dāng)執(zhí)行上面的代碼,我們可以得到下面的輸出。
通過(guò)在BY語(yǔ)句中使用它們,可以對(duì)多個(gè)變量應(yīng)用排序。 變量以從左到右的優(yōu)先級(jí)排序。
在下面的代碼中,數(shù)據(jù)集首先在變量名稱(chēng)上排序,然后在變量名稱(chēng)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 ;
當(dāng)執(zhí)行上面的代碼,我們可以得到下面的輸出。
更多建議: