全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4361 1
2015-04-16
在论坛里找了都没找到答案,特发此贴,求教高人。
1 我有许多股票(五千只)收益率的数据(每只股票一列时间序列数据,一张表格纵向是时间,横向是股票代码),但是其中很多股票的年份有缺失值。如果我就想删掉有缺失值一整列数据(也就是说有缺失值我就删掉那只股票)有没有程序可以实现自动筛选和删除?

2 如果我的股票数据一列下来的,我想把它拆成每只股票一个数据集,在网上找了一个宏,但是这个宏最多只能拆999个数据集,这是为什么呢?把程序附在下面。

十分感谢!!

*宏的赋值语句;
DATA _NULL_;
SET trial END=EOF;         
BY CRSP_FUNDNO;                    
IF FIRST.CRSP_FUNDNO THEN DO;   
    NUMCTY+1;                  
    CTYOBS=0;                  
    END;
CTYOBS+1;                     
IF LAST.CRSP_FUNDNO THEN DO;      
    CALL SYMPUT('MCTY'||LEFT(PUT(NUMCTY,3.)),CRSP_FUNDNO);
    CALL SYMPUT('MOBS'||LEFT(PUT(NUMCTY,3.)),LEFT(CTYOBS));
    END;
IF EOF THEN                     
    CALL SYMPUT('MTOTCT',NUMCTY);
RUN;


*下面的宏实现多个数据集的生成:这里dsn是原数据集,byvar是要根据哪个变量的值来生成数据集;
%macro group(dsn,byvar);
  data %do i=1 %to &MTOTCT;
        A&i
       %end;
;
    set &dsn;
      %do i=1 %to &MTOTCT;
        if &byvar="&&MCTY&i" then output A&i;
      %end;
  run;
%mend;
%group(***,***);

二维码

扫码加我 拉你入群

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

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

全部回复
2015-4-17 14:50:11
没人理我吗
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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