新聞中心
可以基于特定的公共變量合并多個SAS數據集以給出單個數據集。 這是使用MERGE語句和BY語句完成的。 合并數據集中的觀察的總數通常小于原始數據集中的觀察的數量的總和。 這是因為當公共變量的值存在匹配時,變量形成兩個數據集合被合并為一個記錄。

創(chuàng)新互聯專注于企業(yè)營銷型網站建設、網站重做改版、汝南網站定制設計、自適應品牌網站建設、成都h5網站建設、商城網站定制開發(fā)、集團公司官網建設、成都外貿網站建設、高端網站制作、響應式網頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為汝南等各大城市提供網站開發(fā)制作服務。
下面給出了合并數據集的兩個先決條件:
- 輸入數據集必須至少有一個要合并的公用變量。
- 輸入數據集必須按照將用于合并的公共變量排序。
語法
SAS中的MERGE和BY語句的基本語法是:
MERGE Data-Set 1 Data-Set 2 BY Common Variable
以下是所使用的參數的說明:
- Data-set1,Data-set2是一個接一個寫入的數據集名稱。
- 公共變量是基于其匹配值的數據集合將被合并的變量。
數據合并的例子
考慮兩個SAS數據集,一個包含具有名稱和工資的雇員ID,另一個包含具有雇員ID和部門的雇員ID。 在這種情況下,為了獲得每個員工的完整信息,我們可以合并這兩個數據集。 最終數據集仍將對每個員工有一個觀察值,但它將包含薪水和部門變量。
# 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
上述結果通過使用以下代碼實現,其中在BY語句中使用公共變量(ID)。 請注意,兩個數據集中的觀測值已在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;
匹配列中缺少值
可能存在公共變量的一些值在數據集之間不匹配的情況。 在這種情況下,數據集仍然會合并,但在結果中給出缺失值。
例
考慮數據集工資中缺少員工ID:3的情況,以及員工ID:6缺少表單數據集DEPT。 當應用上述代碼時,得到以下結果。
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
僅合并匹配項
為了避免結果中的缺失值,我們可以考慮僅保留具有公共變量的匹配值的觀察值。 這是通過使用IN語句實現的。 SAS程序的merge語句需要更改。
例
在下面的示例中,IN =值僅保留來自數據集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
分享標題:創(chuàng)新互聯SAS教程:SAS合并數據集
網站鏈接:http://fisionsoft.com.cn/article/djjgips.html


咨詢
建站咨詢
