全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1319 3
2012-12-30
使用宏,一般%do i=1 %to 100,对i=1到100的数据都进行循环处理。但是我只对部分i进行操作,比如i=3,5,12,19……等,这些i无规律,这要怎么操作呢?麻烦大家了~
二维码

扫码加我 拉你入群

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

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

全部回复
2012-12-30 14:39:01
不要把没规律的任务交给电脑,电脑终究比不过人脑。
如果你硬是要这么做,可以先把那些没规律的i的值定义成宏变量,每个宏变量按你后面的语句循环一次,循环里面嵌套。
如何把那些没规律的值全部定义成宏变量,先把那些i值先成个数据集,再用SQL步,一次性读取成宏变量。
二维码

扫码加我 拉你入群

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

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

2012-12-30 22:57:42
1) Passing the values to a array of macro variables (ivar1 ivar2 ... in the example below)
2) retrieving values with solving the reference of &&ival&i given i=1,2,3,... that is the list of  1,3,10 ... in example below.

31   %macro loop_irregular_value(dummy);
32   data t1;
33     do i=1,3,10,2,8,6;
34        n+1;
35        call symputx(catt('ival',n),i);
36     end;
37        call symputx('cnt_i',n);
38   run;
39
40   %put retrieve values start here::;
41   %do i=1 %to &cnt_i;
42      %put &&ival&i;
43   %end;
44   %put retrieve values end here::;
45   %mend;
46
47   %loop_irregular_value(dummy)

NOTE: The data set WORK.T1 has 1 observations and 2 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.01 seconds


retrieve values start here::
1
3
10
2
8
6
retrieve values end here::
二维码

扫码加我 拉你入群

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

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

2013-1-16 15:04:12
恩,很厉害
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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