楼主: tangb
3898 18

[程序分享] 怎样将数据集的变量传递给data 步的控制变量。例如:循环终止值? [推广有奖]

11
tangb 发表于 2009-9-1 14:20:40
慢慢开始了解 sas的编程规律了

12
tangb 发表于 2009-9-1 14:21:29
宏看来在有规模的程序,是个不可或缺的组成部分。

13
tangb 发表于 2009-9-1 14:26:24
宏里面的数据集没有定义怎么办?
象这样?

%macro sample;
  %do k=1 % to 365;
Data  sample.F;
           set sample.E;
           where num = &k;
run;


这段代码,放在整个代码的最开始。

sas编译的时候找不到 sample.e这个数据集怎么办?毕竟开始的时候,数据集E还没生成。

14
losttemple 发表于 2009-9-1 14:32:23
call execute你可以去试试啊

15
sushe1527 发表于 2009-9-1 16:57:04
楼上是魔兽专员

16
buteo 发表于 2009-9-2 15:39:24
用proc sql。
proc sql;
select count(*) into :count from ....

17
tangb 发表于 2009-9-2 16:11:11
楼上,我之前就试过,跑数据集里去了。无法进入控制变量。sas在这极绕弯子。

18
monicawang 发表于 2009-9-4 02:37:16
多谢高手, 学习了。

19
tangb 发表于 2009-9-4 15:40:32
这段程序是我要开始把这个csv文件拆成公司数据集了。



%macro sepereation (companyname, count);


/*这里的count,就是上个程序的计数器,手工放到宏参数里的*/

%do  number=1 % to &count;

data data16.&companyname&number( keep= ric Date Time TYPE Price Bidprice Askprice Qualifiers ) ;
set data16.sample1;

/*利用上个程序给每个公司的编号,选择一个公司输出,输出的数据集名:companyname 1-n   (这里的n就是这个csv里的公司数目,也就是count的赋值。*/

where companynum= &number;

run;

%end;
%mend ;


%sepereation (companyname,5);




run;

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-22 01:14