熱線電話:13121318867

登錄
首頁精彩閱讀SAS中數據集的合并
SAS中數據集的合并
2016-09-10
收藏

SAS中數據集的合并

數據集的合并分為兩種情形:第一種是縱向合并,即把具有相同變量的數據集合并起來;另一種是橫向合并,把記錄數目相同的數據集合并起來。


1 縱向合并
縱向合并的方法很簡單,就是使用SET 語句將幾個數據集的內容復制到一個數據集中就可以了。
例1 上一次曾經把score 數據集按照性別拆分到兩個數據集scorem 和scoref,這兩數據集具有完全相同的變量所以滿足縱向合并的要求現在重新將它們合并程序如下
data combine;
set scorem scoref;
run;
proc print;
run;
輸出數據集combine
Obs name sex math chinese english
1 Tom m 95 87 84
2 Mike m 80 85 80
3 Fred m 84 85 89
4 Alex m 92 90 91
5 Cook m 75 78 76
6 Butt m 77 81 79
7 Geoge m 86 85 82
8 Tod m 89 84 84
9 Alice f 90 85 91
10 Jenny f 93 90 83
11 Kate f 97 83 82
12 Bennie f 82 79 84
13 Hellen f 85 74 84
14 Wincelet f 90 82 87
15 Christian f 89 84 87
16 Janet f 86 65 67
可以看到,在新的數據集中原數據集score 中的每一條記錄都可以找到,惟一不同的是記錄的順序發生了,變化所有男生的記錄都放在前面女生的記錄放在后面,這是因為在復制的過程中將scorem 數據集放在scoref 數據集的前面
2 橫向合并
橫向合并要求數據集必須具有相同的記錄數目,一般是同一觀測的不同變量橫向合并使用MERGE語句

例2 可以把原有的記錄所有學生成績的score 數據集拆分為三個數據集。第一個數據集包括姓名性別數學成績,第二個數據集包括語文成績,第三個數據集只包括英語成績,這樣這三個數據集就完全符合橫向合并的條件
先將數據集score 拆分開來
data scorea;
set sasuser.score;
keep name sex math;
run;
data scoreb;
set sasuser.score;
keep chinese;
run;
data scorec;
set sasuser.score;
keep english;
run;
這樣就有了三個數據集現在運用MERGE 語句將它們重新合并在一起
data combine;
merge scorea scoreb scorec;
run;
proc print;
run;
可以從輸出結果中看到,橫向合并生成的數據集與原有的score 數據集完全相同,有些時候在幾個數據集中觀測的順序可能被打亂這時就必須先排序再合并。


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢