全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1918 3
2012-07-26
比如有如下的表格,就是不同股票在一段时间的收盘价数据
Stk_Code End_Date Cls_Prc
000001     2012.1.4  20
000001     2012.1.5  21
000001     2012.1.7  23
...

000022     2012.1.4  78
000022     2012.1.5  79
000022     2012.1.7  82

现在要把非交易日的数据都补足
我现在生成了一张全部日期的表,就是有一列End_Date为全部日期的表
但是不知道用什么办法给他补足了
请教高手了,谢谢!



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-7-26 16:42:52
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-7-26 16:52:21
data work.a;
        input Stk_Code $ End_Date date9. Cls_Prc;
        format End_Date yymmdd10.;
        datalines;
000001 04jan2012 20
000001 05jan2012 21
000001 07jan2012 23
000022 04jan2012 78
000022 05jan2012 79
000022 07jan2012 82
;
run;

data work.b;
        do End_Date = "01jan2012"d to "31jan2012"d ;
                Cls_Prc = .;
                output;
        end;
run;

proc sql noprint;
        create table work.c as
                select distinct Stk_Code
                from work.a;
        create table work.d as
                select a.*,
                        b.*
                from work.c a,work.b b;
quit;

data work.result;
        merge work.d work.a;
        by Stk_Code End_Date;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-7-27 09:02:38
chendonghui1987 发表于 2012-7-26 16:52
data work.a;
        input Stk_Code $ End_Date date9. Cls_Prc;
        format End_Date yymmdd10.;
多谢,我昨天做的时候也是先用有CalendarDay的表和行情表merge,结果发现对于有多种股票的merge没法实现
只好先用CalendarDay表和Stk_Code表先笛卡尔积一下了
需要多花一道工续,感觉还比较费时
我再看看ls的贴子
还是要多谢你了,码了那么多字
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群