|
Table of Contents
|
SET 敘述句
用途
- 將資料集A的部份資料,複製到新的資料集B。
- 以資料集A的資料產生新變數到新的資料集B。
- 將數個資料集縱向連結至一個新的資料集。
syntax
1.將資料集A的部份資料,複製到新的資料集B
1.1.將現存的資料集全部複製
data newname;
set oldname;
1.2.複製現存資料集的部份變數
data newname;
set oldname;
keep (drop) 變數名;
1.3.複製現存資料集中,符合特定條件部份觀察值
data newname;
set oldname;
if … then delete;
2.以資料集A的資料產生新變數到新的資料集B
data newname;
set oldname;
new_var_name=經過運算元處理的舊變數;
3.將數個資料集縱向連結至一個新的資料集。
data newname;
set oldname1 oldname2 oldname3 oldname4;
MERGE 敘述句
增加觀察值的變數
用途
- 一對一合併:資料集A的第一筆對資料集B的第一筆…資料集A的第n筆資料對資料集B的第n筆資料
- Matching 合併:當觀察值不完全一致時,必須先用proc sort先對選定的變數進行排序,再使用MERGE敘述句。
syntax
1.一對一合併
data newdataset;
merge olddataset1 olddataset2 … olddataset[n];
2.Matching 合併
proc sort data=olddataset1;
by var1;
proc sort data=olddataset2;
by var1;
…
…
data newdataset;
merge olddataset1 olddataset2;
by var1;
UPDATE 敘述句
用途
除了覆寫重複的觀察值與變數之外,也能額外新增觀察值與變數,是很實用的合併敘述句,跟Mathching合併一樣,也需要事先proc sort。
syntax
proc sort data=olddataset1;
by var1;
proc sort data=olddataset2;
by var1;
…
…
data newdataset;
update olddataset1 olddataset2;
by var1;
注意事項
在每一個data set之中的觀察值不可以有重複,否則會出現錯誤訊息
BY敘述句
用途
用來控制資料集的分組狀況,同樣也能在PROC STEP作用
syntax
by [descending] var1;
descending這個選項是將變數由大至小排列,如果沒宣告,則是由小至大排列
其他可能與SET、MERGE、UPDATE搭配使用的指令
DROP=var1、keep=var2
範例:
data new (DROP=var1);
set old;
範例:
data new;
set old (DROP=var1);
Firstobs=n
範例:
PROC PRINT DATA=old (FIRSTOBS=10)
OBS=n
範例:
PROC PRINT DATA=old (OBS=10)
RENAME=(oldname=newname)
範例:
data new (RENAME=(x1=name x2=age));