作者nabasico ( 走吧)
看板Statistics
标题[问题] sas月资料和季资料合并
时间Sat Feb 6 15:09:25 2010
不好意思 我是sas的新手 最近在整理资料遇到一个问题
因一直找不出解决方式 故烦请各位高手能帮个忙!!
资料a 资料b
cusip date comnam ret cusip datafqtr commn asset
0001 19700130 aaa -2.96 0001 1970Q1 aaa 29.33
0001 19700227 aaa -8.62 0001 1970Q2 aaa 32.44
0001 19700331 aaa -16.42 0001 1970Q3 aaa 35.15
. . . . . . . .
. . . . . . . .
. . . . . . . .
0002 19700130 bbb 0.88 0002 1970Q1 bbb 214.56
0002 19700227 bbb 1.76 0002 1971Q2 bbb 220.31
0002 19700331 bbb 3.90 . . . .
. . . . . . . .
. . . . . . . .
. . . . 0003 1971Q1 ccc 7.51
0003 19710129 ccc 8.92 0003 1971Q2 ccc 8.36
0003 19710226 ccc 11.81
0003 19710331 ccc -3.25
现在想要合并成以下资料
cusip date comman ret datafqtr asset
0001 19700130 aaa -2.96 1970Q1 29.33
0001 19700227 aaa -8.62 1970Q1 29.33
0001 19700331 aaa -16.42 1970Q1 29.33
以下以此类推
接着小弟翻了书写了一些CODE 但都有错误发生
DM' OUTPUT; CLEAR; LOG; CLEAR' ;
libname sas "D:\alldata";
data sas.bb;
set sas.b;
proc sort;
by cusip date;
run;
data sas.aa;
set sas.a;
informat date $6.;
(*WARNING: Variable DATE has already been defined as numeric.)
input DATE CUSIP COMNAM RET;
run;
proc sort;
by cusip date;
run;
data sas.merge_after;
set sas.test sas.compustat;
merge sas.test(in=a) sas.compustat(in=b);
by cusip date;
if a and b;
run;
然後第二段改成
proc format library=sas;
picture yyq LOW-HIGH = '999999';
data sas.test;
set sas.test;
format date yyq.;
put date = $6.;
proc sort;
by cusip date;
run;
(*ERROR: Variable DATE has been defined as both character and numeric.)
基本上资料a的日期为数字格式 而资料b的季为文字格式 一直无法合并
可以请教高手们应该如何修改? 感谢不尽~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.243.66
1F:推 kenshin528:两边各创一个"季"的新变项(数值)再合并 02/06 16:20
2F:→ nabasico:谢谢K大的回答 不过小弟创出来的变数格式还是没变>< 02/06 20:25
3F:推 doublesome:日期问题的话 可以除於10000 100个别得到年 月 02/10 11:47
4F:→ doublesome:然後利用月就可以设season 02/10 11:48