全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
9020 9
2015-06-06
宏变量只会读取数据集的第一行。如何才能把所有数据行都读入呢?

二维码

扫码加我 拉你入群

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

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

全部回复
2015-6-6 18:28:48
期待解答~
二维码

扫码加我 拉你入群

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

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

2015-6-6 18:50:47
到此一游
二维码

扫码加我 拉你入群

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

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

2015-6-8 09:07:02
复制代码


也只能这样了,如果只用sql, call symput 可以循环用多个macro variable 定义多行的值
二维码

扫码加我 拉你入群

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

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

2015-6-8 16:57:49
bullstag 发表于 2015-6-8 09:07
也只能这样了,如果只用sql, call symput 可以循环用多个macro variable 定义多行的值
proc sql noprint;
create table tmp_2 as select distinct
  a.stkcd,b.p from tmp a,t3 b  group by a.stkcd
  having a.week=261-&n;
select distinct p,stkcd into: :p,:stkcd from tmp_2;
  quit;
这样是不是也可以让宏变量读取多行啊?

但是,表t再次引用宏变量的时候,宏变量还是只取一行的值。
而且,新创建了tmp_2后,宏变量n又显示没有引用。n是在if do中用于循环的。
现在对宏变量还不太熟悉,不太懂宏变量什么时候处于引用状态?
  data t;
  n=&n;
  p=&p;
  stkcd="&stkcd";
  run;
二维码

扫码加我 拉你入群

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

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

2015-6-8 16:59:00
bullstag 发表于 2015-6-8 09:07
也只能这样了,如果只用sql, call symput 可以循环用多个macro variable 定义多行的值
另外,如果用call symput该如何循环定义宏变量值呢?
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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