作者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
1F:→ west1996:我把你贴的code贴到SAS上跑是正常可以用的,很有可能是你 03/02 20:50
2F:→ west1996:的原始资料中date那一个变数的变数类型本来就已经是日期 03/02 20:50
3F:→ west1996:的格式了,建议先检查一下原始档案里的变数格式 03/02 20:52
4F:→ c21221203:我刚检查发现a资料的format 是date格式,所以我应该如 03/02 22:19
5F:→ c21221203:如何更改程式。 03/02 22:19
6F:推 socery:data格式更方便, *1就可以了,不用用input或是mdy 03/02 22:29
7F:→ socery:date=_=打错 03/02 22:30
8F:推 west1996:code第11行改成qq=date; 就行了 03/03 08:52