作者c21221203 (kkii)
看板Statistics
標題[討論] 合併資料
時間Wed Mar 2 17:51:49 2011
我的資料
A(名稱:sp500opprice) B(名稱:sp500410)
date close bid offer date stricke high low
02Jan2004 1111 1123 1120 2004-01-02 1120 1122 省 省
02Jan2004 1112 1125 1123 2004-01-03 1130 1123 略 略
02Jan2004 1113 1124 省 2004-01-04 1150 1124
03Jan2004 1121 省 略 2004-01-05 1130 1125
03Jan2004 1122 略
03Jan2004 1123 .
03Jan2004 1124
03Jan2004 1125
想將兩資料合併成:
date close strike bid offer ....
02Jan2004 1111 1122
02Jan2004 1112 1122
02Jan2004 1113 1122
03Jan2004 1121 1123
03Jan2004 1122 1123
A資料每天多筆資料皆能對到B資料的每天資一筆資料,主要是DATA變數,表達方式要一樣
CLOSE變數一天多個,能對上STRIKE變數。
之前板上大所給予的CODE,改寫後
data a1 裡面顯示的qq都用 . 表示,最後也無法合併。
以下是我的CODE:
libname cc'C:\SASdate';
run;
data a;
set cc.sp500opprice;
run;
data b;
set cc.sp500410;
run;
data a1;
set a;
qq=input(date,DATE9.);
proc sort;
by qq;
run;
data b1;
set b;
qq=mdy(substr(date,6,2),substr(date,9,2),substr(date,1,4));
date2=put(qq,date9.);
drop date;
run;
data e;
merge a1(in=a) b1(in=b);
by qq;
if a=1 or fb=1;
drop qq;
run;
proc sort;
by qq;
run;
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.26.164.111
→ west1996:我把你貼的code貼到SAS上跑是正常可以用的,很有可能是你 03/02 20:50
→ west1996:的原始資料中date那一個變數的變數類型本來就已經是日期 03/02 20:50
→ west1996:的格式了,建議先檢查一下原始檔案裡的變數格式 03/02 20:52
→ c21221203:我剛檢查發現a資料的format 是date格式,所以我應該如 03/02 22:19
→ c21221203:如何更改程式。 03/02 22:19
推 socery:data格式更方便, *1就可以了,不用用input或是mdy 03/02 22:29
→ socery:date=_=打錯 03/02 22:30
推 west1996:code第11行改成qq=date; 就行了 03/03 08:52