楼主: t儿t儿
9019 9

sas中proc sql into 如何产生多行多列的宏变量 [推广有奖]

  • 0关注
  • 0粉丝

已卖:3份资源

高中生

37%

还不是VIP/贵宾

-

威望
0
论坛币
66 个
通用积分
5.5785
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
99 点
帖子
14
精华
0
在线时间
43 小时
注册时间
2013-3-5
最后登录
2017-1-17

楼主
t儿t儿 发表于 2015-6-6 18:28:15 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
宏变量只会读取数据集的第一行。如何才能把所有数据行都读入呢?

二维码

扫码加我 拉你入群

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

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

关键词:proc sql int ROC sql 读取数据 如何

回帖推荐

bullstag 发表于7楼  查看完整内容

just created a small sample, run and have a look.

沙发
t儿t儿 发表于 2015-6-6 18:28:48
期待解答~

藤椅
yuwenjun720731 发表于 2015-6-6 18:50:47
到此一游

板凳
bullstag 发表于 2015-6-8 09:07:02
  1. proc sql noprint;
  2. select _MAP_GEOMETRY_, COUNTRY,ID,IDNAME
  3. into: GEOMETRY separated by ",",
  4. :country separated by ",",
  5. : ID separated by ",",
  6. : idname separated by ","
  7. from maps.afghani2;
  8. quit;
  9. %put &GEOMETRY ;
  10. %put &country;
  11. %put &ID;
  12. %put &idname;
复制代码


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

报纸
t儿t儿 发表于 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;

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

7
bullstag 发表于 2015-6-8 23:13:39
  1. data list;
  2. do i = 1 to 200;
  3.         x = ranuni(i);
  4.         y = x**2;
  5.         output;
  6. end;
  7. drop i;
  8. run;

  9. data _null_;
  10. set list;
  11.         do i = 1 to 200;       
  12.                 call symput(cat('x',_n_),x);
  13.                 call symput(cat('y',_n_),y);
  14.         end;
  15. run;
  16. %macro list_value;
  17. %do i = 1 %to 200;
  18.         %put &&x&i &&y&i;
  19. %end;
  20. %mend;

  21. %list_value;
复制代码


just created a small sample, run and have a look.

8
rollingup 发表于 2015-6-8 23:25:10
学习一下!

9
t儿t儿 发表于 2015-6-9 12:25:32
bullstag 发表于 2015-6-8 23:13
just created a small sample, run and have a look.
学习了~

10
Sxtac 发表于 2016-10-21 19:07:58
不太懂,宏变量可以读取一整列的数据呀?是sas更新了吗,还是我对题目理解错误?我用的是9.3版本。求好心人解答~

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

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