新聞中心
可以基于特定的公共變量合并多個(gè)SAS數(shù)據(jù)集以給出單個(gè)數(shù)據(jù)集。 這是使用MERGE語句和BY語句完成的。 合并數(shù)據(jù)集中的觀察的總數(shù)通常小于原始數(shù)據(jù)集中的觀察的數(shù)量的總和。 這是因?yàn)楫?dāng)公共變量的值存在匹配時(shí),變量形成兩個(gè)數(shù)據(jù)集合被合并為一個(gè)記錄。

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


咨詢
建站咨詢
