全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2876 9
2011-11-18
复制代码

输出结果:
I am 01
I am 2
I am 3
I am 4
I am 5
I am 6
I am 7
I am 8
I am 9
I am 10
I am 11
I am 12

我想让输出结果变为:
I am 01
I am 02
I am 03
I am 04
I am 05
I am 06
I am 07
I am 08
I am 09
I am 10
I am 11
I am 12
请问该如何处理,折腾了一上午,没搞出来,求请教。。
%cycle参数的格式是定死的(YYYY,MM)
二维码

扫码加我 拉你入群

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

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

全部回复
2011-11-18 17:02:37
没有人会吗?
二维码

扫码加我 拉你入群

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

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

2011-11-18 17:33:25
复制代码
得到的结果是:
I am 11
I am 04
I am 08
I am 01
I am 05
I am 10
I am 02
I am 07
I am 12
I am 04
I am 09
I am 01

很明显上述结果不正确,问题在于当Cats函数与%sysfunc结合时,得到的时间错乱了。何故?请高手指教!

二维码

扫码加我 拉你入群

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

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

2011-11-18 18:48:08
复制代码
log file:

445  %MACRO T(x);
446          %put I am %sysfunc(putn(&x,z2.));
447  %MEND T;
448
449  %macro cycle(year,month);
450  data temp;
451  format a;
452  %let n=&month;
453  %do %while(&n<13);
454          %T(&n);
455          output;
456          %let n=%eval(&n+1);
457  %end;
458  run;
459  %mend cycle;
460
461  %cycle(2010,01);
I am 01
I am 02
I am 03
I am 04
I am 05
I am 06
I am 07
I am 08
I am 09
I am 10
I am 11
I am 12

NOTE: Variable a is uninitialized.
NOTE: The data set WORK.TEMP has 12 observations and 0 variables.
NOTE: DATA statement used (Total process time):
      real time           0.67 seconds
      cpu time            0.06 seconds


二维码

扫码加我 拉你入群

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

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

2011-11-18 19:08:33
no6000 发表于 2011-11-18 17:33
得到的结果是:
I am 11
I am 04
当n=1时,cat的结果是12010,这个数字表示的日期转成MMYYN.格式是111992,所以 结果是 I am 11
当n=2时,cat的结果是22010,这个数字表示的日期转成MMYYN.格式是042020,所以 结果是 I am 04
其余类似。你可以试试。
复制代码
log file:

516  data _null_;
517  d1=12010;
518  d2=22010;
519  f1=put(d1,mmyyn.);
520  f2=put(d2,mmyyn.);
521  put d1 f1 /d2 f2 ;
522  run;

12010 111992
22010 042020
二维码

扫码加我 拉你入群

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

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

2011-11-20 19:38:07
webgu 发表于 2011-11-18 18:48
log file:

445  %MACRO T(x);
我没表述全,被调用的宏
%MACRO T(x);
        %put I am &x;
%MEND T;
我是不想改变的。真正目的是想让宏变量%n本质上变为01,02,03,04......12。

而非输出的时候用 z2.做限制。。
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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