全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3385 3
2016-05-19
各位大侠:我现在有一个数据集,想把它按照股票代码拆分成若干个子数据集(同一个代码的观测全部汇总到一个数据集里)。日期变化毫无规律。并且要求子数据集的名字是m******,******是股票代码。因为数据量非常大,所以需要用到宏,请问该如何编写程序呢??谢谢了!!
二维码

扫码加我 拉你入群

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

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

全部回复
2016-5-19 14:46:48
这个肯定可以。应该有更简便的方法
proc sort data=aa out=aaa nodupkey;
by stock;
run;
proc sql;
        select count(*) into: obs from aaa;
        select stock_id into :stock_id1-:stock_id%left(&obs) from aaa;
quit;

%macro test;
        %do i=1 %to &obs ;
                data m_&&stock_id&i;
                        set aa;
                where stock_id=&&stock_id&i;
                run;
        %end;
%mend;
%test;
二维码

扫码加我 拉你入群

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

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

2016-5-19 20:06:07
呃 我运行后老是报错啊 ERROR: WHERE 子句运算符要求兼容的变量。
二维码

扫码加我 拉你入群

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

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

2016-5-20 09:12:03
内画瓶 发表于 2016-5-19 20:06
呃 我运行后老是报错啊 ERROR: WHERE 子句运算符要求兼容的变量。
where=宏的时候要注意 宏变量的属性,可以先键个变量 a=宏看看字段属性。还是要靠自己调试的
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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