SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 851|回复: 8
打印 上一主题 下一主题

求助:股票日期数据的提取?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2009-12-14 20:58:26 | 只看该作者

求助:股票日期数据的提取?

求助:股票日期数据的提取?

我写了一段程序:
%macro bk1(aa1,aa2,aa3);
%do i=1 %to 8;
data a&i;
set  gp_hq;      
year=year(date); /*date是股票数据集日期的名称*/
month=month(date);
day=day(date);
x=mdy(month,day,year);
y=mdy(&aa2,&aa3,&aa1);
ab=y-&i+1 ;
if x=ab then output;
run;
%end;
%mend bk1;
%bk1(2009,12,11);  /* aa1 aa2 aa3 开始提出的日期(年 月 日)*/
run;

原打算提出从2009.12.11日开始,往回数8天的数据,分别存入a1、a2、a3、、、、a7、a8连续的数据集中。

由于12月5、6日是星期六、日,所以a6、a7是空集后面的计算就不对了。

求助:如何提出往回数8天的数据,分别存入a1、a2、a3、、、、a7、a8连续的数据集中。

谢谢!!!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2009-12-14 22:30:47 | 只看该作者

Re: 求助:股票日期数据的提取?

是刨去周六日往回推8天吗?
[code:2vw9b8yv]data raw;
        do var=0 to 30;
                date='01dec09'd+var;
                output;
        end;
        format date yymmdd10.;
run;

%macro temp(inds,indate,loop);
        %let date=%eval(%sysfunc(inputn(&indate,yymmdd8.))+1);
        %let i=1;
        %do %until(&i ge %eval(&loop+1));
                %let date=%eval(&date-1);
                data a_&i;
                        set &inds;
                        where date=&date;
                run;
                %if %sysfunc(weekday(&date)) ne 1 and %sysfunc(weekday(&date)) ne 7
                        %then %let i=%eval(&i+1);
        %end;
%mend;

%temp(raw,20091218,8)[/code:2vw9b8yv]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2009-12-16 21:32:10 | 只看该作者

Re: 求助:股票日期数据的提取?

谢谢帮助!!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2009-12-16 21:41:19 | 只看该作者

Re: 求助:股票日期数据的提取?

楼主同志,可能你还是需要一张交易日表啊。
不仅仅是周六,周日没数据
停牌就没数据啊。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2009-12-24 09:48:44 | 只看该作者

Re: 求助:股票日期数据的提取?

按照hopewell老师的指教,我提出了前8天的数据,现想用图表现出来,用了下面的程序(太长截了一段)

%macro temp(aa1);

%do i=1 %to 8;

%let riqi=%eval(%sysfunc(inputn(&aa1,yymmdd8.))-&i);

filename zd_fdc2 "F:\\zd_&riqi. 数据图.emf";
....
quit;


%end;
%mend;
%temp(20091211)

请教:画出的图的名称是“zd_18234、zd_18233、zd_18232、zd_18231......."

如何将图的名称用”zd_20091211、zd_20091210、zd_20091209...."
或名称用”zd_2009-12-11、zd_2009-12-10、zd_2009-12-09...."

谢谢!!!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2009-12-24 10:44:29 | 只看该作者

Re: 求助:股票日期数据的提取?

改了一下,用这个版本吧
[code:1k5tdb3u]data raw;
   do var=1 to 31;
      date='01dec09'd+var-1;
      output;
   end;
   format date yymmdd10.;
run;

%macro temp(inds,indate,loop);
   %let date=%eval(%sysfunc(inputn(&indate,yymmdd8.))+1);
   %let i=1;
   %do %until(&i ge %eval(&loop+1));
      %let date=%eval(&date-1);
      %if %sysfunc(weekday(&date)) ne 1 and %sysfunc(weekday(&date)) ne 7
         %then %do;
                                data a_%sysfunc(putn(&date,yymmddn8.));
                                        set &inds;
                                        where date=&date;
                                run;
                                %let i=%eval(&i+1);
                        %end;
   %end;
%mend;

%temp(raw,20091218,8)[/code:1k5tdb3u]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2009-12-24 12:12:22 | 只看该作者

Re: 求助:股票日期数据的提取?

谢谢hopewell您的指教!!
我觉得还是前一段程序好用,因为它是将提取的数据分别存入A_1、A_2、A_3....中,这样再连续用它们时,用 i=1 to 8 方便。
这个版本是存入A_20091218... ,再连续用它们时就比较麻烦。我又不会了。

有没有办法,在上面程序中,将画出的图的名称“zd_18234、zd_18233、zd_18232、zd_18231......."

改用 zd_20091211、zd_20091210、zd_20091209....  这样的名称
或名称用 zd_2009-12-11、zd_2009-12-10、zd_2009-12-09....  。

谢谢!!!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
8#
 楼主| 发表于 2009-12-24 12:19:20 | 只看该作者

Re: 求助:股票日期数据的提取?

[code:3rwy5ja0]%macro temp(aa1);

%do i=1 %to 8;

%let riqi=%eval(%sysfunc(inputn(&aa1,yymmdd8.))-&i);

filename zd_fdc2 "F:\\zd_%sysfunc(putn(&riqi,yymmddn8.))数据图.emf";
....
quit;


%end;
%mend;
%temp(20091211)[/code:3rwy5ja0]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
9#
 楼主| 发表于 2009-12-24 13:14:57 | 只看该作者

Re: 求助:股票日期数据的提取?

真的非常感谢hopewell您的指教!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-6 09:43 , Processed in 0.128039 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表