<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 - 連接數據集

可以使用 SET 語句連接多個SAS數據集以提供單個數據集.連接數據集中的觀察總數是原始數據集中觀察數的總和.觀察的順序是順序的.來自第一個數據集的所有觀察結果都跟隨來自第二個數據集的所有觀察結果,依此類推.

理想情況下,所有組合數據集都具有相同的變量,但如果它們具有不同的數字變量,然后在結果中出現所有變量,缺少較小數據集的值.

語法

SET語句的基本語法在SAS中是 :

SET data-set 1 data-set 2 data-set 3.....;

以下是所用參數的說明及減號;

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

示例

考慮一個組織的員工數據,該組織有兩個不同的數據集,一個用于IT部門,另一個用于非It部門.為了獲得所有員工的完整詳細信息,我們使用如下所示的SET語句連接兩個數據集.

DATA ITDEPT; 
   INPUT empid name $ salary  ; 
DATALINES; 
1 Rick 623.3 
3 Mike 611.5 
6 Tusar 578.6 
; 
RUN; 
DATA NON_ITDEPT; 
   INPUT empid name $ salary  ; 
DATALINES; 
2 Dan 515.2 
4 Ryan 729.1 
5 Gary 843.25 
7 Pranab 632.8 
8 Rasmi 722.5 
RUN; 
DATA All_Dept; 
   SET ITDEPT NON_ITDEPT; 
RUN; 
PROC PRINT DATA = All_Dept; 
RUN;

執行上述代碼后,我們得到以下輸出.

concateate1

場景

當我們在連接數據集中有很多變化時,變量的結果會有所不同但是級聯數據集中的觀測總數始終是每個數據集中觀測值的總和.我們將在下面考慮這種變化的許多場景.

不同數量的變量

如果原始數據集中的一個具有更多變量,那么另一個,然后數據集仍然合并,但在較小的數據集中,這些變量顯示為缺失.

示例

在下面的示例中,第一個數據集有一個名為DOJ的額外變量.在結果中,第二個數據集的DOJ值將顯示為缺失.

DATA ITDEPT; 
   INPUT empid name $ salary DOJ date9.  ; 
DATALINES; 
1 Rick 623.3 02APR2001
3 Mike 611.5 21OCT2000
6 Tusar 578.6 01MAR2009  
; 
RUN; 
DATA NON_ITDEPT; 
   INPUT empid name $ salary  ; 
DATALINES; 
2 Dan 515.2 
4 Ryan 729.1 
5 Gary 843.25 
7 Pranab 632.8 
8 Rasmi 722.5 
RUN; 
DATA All_Dept; 
   SET ITDEPT NON_ITDEPT; 
RUN; 
PROC PRINT DATA = All_Dept; 
RUN;

執行上述代碼后,我們得到以下輸出.

concateate2

不同的變量名稱

在這種情況下,數據集具有相同數量的變量,但變量名稱不同它們之間.在這種情況下,正常級聯將在結果集中生成所有變量
,并為兩個不同的變量提供缺失結果.雖然我們可能不會更改原始數據集中的變量名稱,但我們可以在我們創建的連接數據集中應用RENAME函數.這將產生與正常連接相同的結果,但當然有一個新的變量名稱代替原始數據集中存在的兩個不同的變量名稱.

示例

在下面的示例數據集中,ITDEPT具有變量名稱 ename ,而數據集 NON_ITDEPT 具有變量名稱 empname.但是這兩個變量都代表相同的類型(字符).我們在SET語句中應用 RENAME 函數,如下所示.

DATA ITDEPT; 
   INPUT empid ename $ salary  ; 
DATALINES; 
1 Rick 623.3 
3 Mike 611.5 
6 Tusar 578.6 
; 
RUN; 
DATA NON_ITDEPT; 
   INPUT empid empname $ salary  ; 
DATALINES; 
2 Dan 515.2 
4 Ryan 729.1 
5 Gary 843.25 
7 Pranab 632.8 
8 Rasmi 722.5 
RUN; 
DATA All_Dept; 
   SET ITDEPT(RENAME =(ename = Employee) ) NON_ITDEPT(RENAME =(empname = Employee) ); 
RUN; 
PROC PRINT DATA = All_Dept; 
RUN;

執行上述代碼后,我們得到以下輸出.

concateate3

不同的變量長度

如果兩個數據集中的變量長度不同于連接數據集將具有一些值,其中某些數據被截斷為具有較小長度的變量.如果第一個數據集的長度較短,則會發生這種情況.為了解決這個問題,我們將更長的長度應用于數據集,如下所示.

示例

在下面的示例中,變量 ename 在第一個數據集中長度為5,在第二個數據集中長度為7.連接時,我們在連接數據集中應用LENGTH語句,將ename長度設置為7.

DATA ITDEPT; 
   INPUT  empid 1-2 ename $ 3-7 salary 8-14  ; 
DATALINES; 
1 Rick  623.3 
3 Mike  611.5 
6 Tusar 578.6 
; 
RUN;
DATA NON_ITDEPT; 
   INPUT  empid 1-2 ename $ 3-9  salary 10-16 ; 
DATALINES; 
2 Dan    515.2 
4 Ryan   729.1 
5 Gary   843.25
7 Pranab 632.8 
8 Rasmi  722.5 
RUN; 
DATA All_Dept; 
   LENGTH ename $ 7   ;
   SET ITDEPT  NON_ITDEPT ; 
RUN; 
PROC PRINT DATA = All_Dept; 
RUN;

執行上述代碼后,我們得到以下輸出.

concateate4

亚洲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>