W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
可以基于特定的公共變量合并多個SAS數(shù)據(jù)集以給出單個數(shù)據(jù)集。 這是使用MERGE語句和BY語句完成的。 合并數(shù)據(jù)集中的觀察的總數(shù)通常小于原始數(shù)據(jù)集中的觀察的數(shù)量的總和。 這是因為當(dāng)公共變量的值存在匹配時,變量形成兩個數(shù)據(jù)集合被合并為一個記錄。
下面給出了合并數(shù)據(jù)集的兩個先決條件:
SAS中的MERGE和BY語句的基本語法是:
MERGE Data-Set 1 Data-Set 2 BY Common Variable
以下是所使用的參數(shù)的說明:
考慮兩個SAS數(shù)據(jù)集,一個包含具有名稱和工資的雇員ID,另一個包含具有雇員ID和部門的雇員ID。 在這種情況下,為了獲得每個員工的完整信息,我們可以合并這兩個數(shù)據(jù)集。 最終數(shù)據(jù)集仍將對每個員工有一個觀察值,但它將包含薪水和部門變量。
# Data set 1 ID NAME SALARY 1 Rick 623.3 2 Dan 515.2 3 Mike 611.5 4 Ryan 729.1 5 Gary 843.25 6 Tusar 578.6 7 Pranab 632.8 8 Rasmi 722.5 # Data set 2 ID DEPT 1 IT 2 OPS 3 IT 4 HR 5 FIN 6 IT 7 OPS 8 FIN # Merged data set ID NAME SALARY DEPT 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
上述結(jié)果通過使用以下代碼實現(xiàn),其中在BY語句中使用公共變量(ID)。 請注意,兩個數(shù)據(jù)集中的觀測值已在ID列中排序。
DATA SALARY; INPUT empid name $ salary ; DATALINES; 1 Rick 623.3 2 Dan 515.2 3 Mike 611.5 4 Ryan 729.1 5 Gary 843.25 6 Tusar 578.6 7 Pranab 632.8 8 Rasmi 722.5 ; RUN; DATA DEPT; INPUT empid dEPT $ ; DATALINES; 1 IT 2 OPS 3 IT 4 HR 5 FIN 6 IT 7 OPS 8 FIN ; RUN; DATA All_details; MERGE SALARY DEPT; BY (empid); RUN; PROC PRINT DATA=All_details; RUN;
可能存在公共變量的一些值在數(shù)據(jù)集之間不匹配的情況。 在這種情況下,數(shù)據(jù)集仍然會合并,但在結(jié)果中給出缺失值。
ID NAME SALARY DEPT 1 Rick 623.3 IT 2 Dan 515.2 OPS 3 . . IT 4 Ryan 729.1 HR 5 Gary 843.25 FIN 6 Tusar 578.6 . 7 Pranab 632.8 OPS 8 Rasmi 722.5 FIN
為了避免結(jié)果中的缺失值,我們可以考慮僅保留具有公共變量的匹配值的觀察值。 這是通過使用IN語句實現(xiàn)的。 SAS程序的merge語句需要更改。
在下面的示例中,IN =值僅保留來自數(shù)據(jù)集SALARY和DEPT的值匹配的觀察值。
DATA All_details; MERGE SALARY(IN=a) DEPT(IN=b); BY (empid); IF a=1 and b=1; RUN; PROC PRINT DATA=All_details; RUN;
在執(zhí)行具有上述改變的部分的SAS程序時,我們得到以下輸出。
1 Rick 623.3 IT 2 Dan 515.2 OPS 4 Ryan 729.1 HR 5 Gary 843.25 FIN 7 Pranab 632.8 OPS 8 Rasmi 722.5 FIN
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: