<button id="mgqzr"></button>
<noscript id="mgqzr"></noscript>
<button id="mgqzr"></button>
<pre id="mgqzr"><sup id="mgqzr"><sub id="mgqzr"></sub></sup></pre>
<noscript id="mgqzr"><b id="mgqzr"></b></noscript><button id="mgqzr"></button>

<noscript id="mgqzr"></noscript><button id="mgqzr"><b id="mgqzr"><th id="mgqzr"></th></b></button>
<pre id="mgqzr"><b id="mgqzr"></b></pre><button id="mgqzr"><menuitem id="mgqzr"><table id="mgqzr"></table></menuitem></button>
<pre id="mgqzr"><input id="mgqzr"></input></pre>

SAS - 合并數據集

可以根據特定的公共變量合并多個SAS數據集,以提供單個數據集.這是使用 MERGE 語句和 BY 語句完成的.合并數據集中的觀察總數通常小于原始數據集中觀察數的總和.這是因為當公共變量的值匹配時,兩個數據集的變量合并為一個記錄.

合并下面和下面給出的數據集有兩個先決條件;

  • 輸入數據集必須至少有一個要合并的公共變量.

  • 輸入數據集必須按將用于合并的公共變量排序.

語法

SAS中MERGE和BY語句的基本語法是 :

MERGE Data-Set 1 Data-Set 2
BY Common Variable

以下是所用參數的描述 :

  • Data-set1,Data-set2 是一個接一個寫的數據集名稱.

  • 普通變量是基于其合并數據集的匹配值的變量.

數據合并

讓我們通過一個例子來理解數據合并.

示例

考慮兩個SAS數據集,其中一個包含帶有名稱的員工ID和薪水和另一個包含員工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

上述結果是通過使用以下代碼實現的,其中公共變量(ID)用于BY聲明.請注意,兩個數據集中的觀察結果已經在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程序的合并聲明.

示例

在下面的示例中, IN = value僅保留來自數據集 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;

執行上述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
亚洲AV无码国产精品
<button id="mgqzr"></button>
<noscript id="mgqzr"></noscript>
<button id="mgqzr"></button>
<pre id="mgqzr"><sup id="mgqzr"><sub id="mgqzr"></sub></sup></pre>
<noscript id="mgqzr"><b id="mgqzr"></b></noscript><button id="mgqzr"></button>

<noscript id="mgqzr"></noscript><button id="mgqzr"><b id="mgqzr"><th id="mgqzr"></th></b></button>
<pre id="mgqzr"><b id="mgqzr"></b></pre><button id="mgqzr"><menuitem id="mgqzr"><table id="mgqzr"></table></menuitem></button>
<pre id="mgqzr"><input id="mgqzr"></input></pre>