全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3858 4
2017-02-27
悬赏 100 个论坛币 已解决
l请问论坛高手:假设有一个数据集,有三个变量,一个是股票的代码,另一个是收盘价和日期,分别记为dm,spj date,并且事先知道这个数据集中股票的所有代码取值,例如有三个股票,代码是000001、000002、000003。虚拟数据集如下:
dm           spj          date
000001   10.2       2016-01-02
000001   10.3       2016-01-03
000001   10.7       2016-01-04
000002   9.2        2016-01-02
000002   9.3        2016-01-03
000002   9.7        2016-01-04
000004   8.2        2016-01-02
000004   8.3        2016-01-03
000004   8.7        2016-01-04
现在的问题,如何通过编程把各自股票代码指定观测输出到各自的数据集中,最好比如以字母a开头,以股指代码为后缀形成数据集命名。例如上述数据集内容就要形成数据a000001、a000002、a000004。期待大神指导!
二维码

扫码加我 拉你入群

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

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

全部回复
2017-2-27 21:12:24
复制代码
二维码

扫码加我 拉你入群

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

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

2017-2-27 23:26:27
*Assume your dataset name is "have";

proc sql;
select distinct dm into:key separated by ' '
from have;
quit;


%macro dist;
%do i=1 %to %sysfunc(countw(&key));
%let hat=%scan(&key,&i);               
data a&hat;
set have;
where dm="&hat";
run;
proc export outfile="C:\a&hat..CSV" DBMS=CSV replace;    /*optional: export all these files */
run;
%end;
%mend;

%dist



二维码

扫码加我 拉你入群

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

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

2017-2-28 08:22:04
proc sql;
create table dmlist as
select distinct dm from test;
quit;

data _null_;
set dmlist;
call execute('data a'||strip(dm)||'; set test; where dm='||quote(strip(dm))||';run;');
run;
二维码

扫码加我 拉你入群

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

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

2017-2-28 10:50:45
wwang111 发表于 2017-2-28 08:22
proc sql;
create table dmlist as
select distinct dm from test;
感觉你非常是擅于用call execute语句啊
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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