作者bluegates (藍門)
看板Statistics
標題[程式] SAS合併資料的問題
時間Tue Mar 10 12:48:24 2015
------------------------------------------------------------------------
[軟體程式類別]:
SAS
[程式問題]:
合併資料
[軟體熟悉度]:
新手(不到1個月)
[問題敘述]:
大家好
我想要合併兩個EXCEL檔案
這兩個檔案都有date lacation grade 三個項目
其中aa有sales
bb則是price
我有辦法利用那三個共同的項目去篩選出同一天 同一地點 同個grade
的sales跟price嗎
比如說
aa檔是
Location Date Grade Sales
118 7/15 Diesel 2000.00
113 7/15 Premium 100.00
9 7/15 Diesel 300.00
6 7/16 Premium 105.00
bb檔是
Location Date Grade Price
113 7/15 Premium 2.50
118 7/15 Diesel 2.78
6 7/16 Premium 2.61
12 7/16 Unleaded 2.30
然後我要的結果大概是
Location Date Grade Sales Price
118 7/15 Diesel 2000.00 2.78
113 7/15 Premium 100.00 2.50
9 7/15 Diesel 300.00 N/A
6 7/16 Premium 105.00 2.61
12 7/16 Unleaded N/A 2.30
因為兩個檔案都約有20000多筆資料 分別有缺漏
我用了merge也沒辦法
想知道SAS有沒有這種code能辦到
[程式範例]:
我現在是用這樣
proc import datafile="C:\Users\user\Desktop\FBS.csv" out=aa;
run;
proc import datafile="C:\Users\user\Desktop\FB.csv" out=bb;
run;
proc sort data=aa;
by Date ;
run;
proc sort data=bb;
by Date;
run;
data cc;
merge bb aa(rename=(Grade=gra1 Location=loct1));
by Date Location;
proc print;
run
但是因為資料量不同好像根本無法這樣merge
請問有高手知道該怎麼辦嗎
謝謝
-----------------------------------------------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 75.111.129.180
※ 文章網址: https://www.ptt.cc/bbs/Statistics/M.1425962907.A.586.html
推 methylin: 兩檔案分別創造一新變數 id=compress(location||date||g 03/10 15:00
→ methylin: rade),然後依新變數merge檔案? 03/10 15:00
推 LittleMore: proc sql; 03/10 20:12
→ LittleMore: create table AABB as select a.*,b.* 03/10 20:13
→ LittleMore: from AA a left join BB b 03/10 20:13
→ LittleMore: on a.date=b.date and a.location=b.location 03/10 20:13
→ LittleMore: and a.grade=b.grade 03/10 20:13
→ LittleMore: order by Date; 03/10 20:14
→ LittleMore: quit 03/10 20:14
→ LittleMore: 太多筆數 要測試 可以縮小筆數再測試 例如~~ 03/10 20:15
→ LittleMore: data aa; set aa; if _n_<=3;run; 抓出三筆 03/10 20:16
→ bluegates: 謝謝 我來試試看 03/10 22:23
→ llssdog: 印象中用merge by,都要先sort,你location也要sort 03/12 13:36
→ llssdog: 如果像你舉例的location在兩個檔裡面數目不一樣 03/12 13:41
→ llssdog: 這樣合併會有遺漏吧?要先有一個所有date跟location的檔 03/12 13:42