全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1145 3
2012-10-29
我在一个data步里面大约用了3000个宏变量来记录中间变量(symget和symput语句),速度突然变成很慢!之前使用1000左右的宏变量时,速度还可以。
请教大虾,是不是SAS使用宏变量太多会造成速度非常慢?

O(∩_∩)O谢谢

二维码

扫码加我 拉你入群

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

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

全部回复
2012-10-29 13:32:48
程序可否进一步优化
是否可避免使用这么多的宏变量
如果需要这么多的中间宏变量
可以考虑用Hash对象
二维码

扫码加我 拉你入群

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

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

2012-11-2 08:54:06
hash对象是什么?
二维码

扫码加我 拉你入群

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

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

2012-11-3 10:35:36
Not sure what is your problem.

Ten thousand macro variables of symputx + symget looks very fast and easy.

146      data _null_;
147         do i=1 to 10000;
148            call symputx(catt('n',i),i);
149         end;
150      run;

NOTE: DATA statement used (Total process time):
      real time           0.06 seconds
      cpu time            0.06 seconds


151
152      data tmp;
153         do i=1 to 10000;
154            x=symget(catt('n',i));
155            output;
156         end;
157      run;

NOTE: The data set WORK.TMP has 10000 observations and 2 variables.
NOTE: DATA statement used (Total process time):
      real time           0.07 seconds
      cpu time            0.06 seconds
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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