楼主: gongshuxin2009
5009 4

[问答] SAS SYMPUT语句 求助 [推广有奖]

  • 0关注
  • 0粉丝

已卖:8份资源

本科生

55%

还不是VIP/贵宾

-

威望
0
论坛币
362 个
通用积分
0
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
1765 点
帖子
28
精华
0
在线时间
144 小时
注册时间
2009-7-14
最后登录
2025-4-28

楼主
gongshuxin2009 在职认证  发表于 2012-4-1 14:06:06 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
data _null_;
set Stock_Sector nobs=numobs;
call symput('sector'||left(rownum),trim(Sector_eng));
call symput('nobs_sector',left(numobs));
run;

%macro GetPairData;
%local j;
%do j=1 %to 3;
data _null_;
set &&Sector&j;
num+1;
call symput("&&Sector&j"||"ISINCode"||left(num),ISINCode);
call symput("obsnum_in_Sector",num);
run;
%end;
%mend;
%GetPairData

上面的程序标红的那个语句为什么无法生成宏变量呢,标蓝的语句就可以生成宏变量。?
Log中显示:
WARNING: 没有解析符号引用 AGRICULTURAL_PRODUCTSISINCODE1。(其中AGRICULTURAL_PRODUCTS为&&Sector&j解析后的结果。)
MPRINT显示的结果为:
MPRINT(GETPAIRDATA):   call symput("Agricultural_Products"||"ISINCode"||left(num),ISINCode);
但如果直接AGRICULTURAL_PRODUCTS直接写在&&Sector&j就可以生成宏变量? 这是为什么?


二维码

扫码加我 拉你入群

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

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

关键词:symput put语句 put Agricultural Cultural amp sector local null

沙发
gongshuxin2009 在职认证  发表于 2012-4-1 16:16:09
没用人知道吗?
我刚刚又试,蓝色的那个语句也无法给宏变量赋值。为什么?

藤椅
bobguy 发表于 2012-4-2 03:04:46
I believe you may have blanks in a macro variables.

change these statement

call symput('sector'||left(rownum),trim(Sector_eng));
call symput('nobs_sector',left(numobs));

into

call symputx( catt('sector',rownum),Sector_eng);
call symputx('nobs_sector',numobs);

to see if it works fine.

You need to post your problem with full log file. Adding a few of observations would be much helpful.

板凳
gongshuxin2009 在职认证  发表于 2012-4-2 08:31:42
我又试了一下,如果在Call Symput语句前 先用%Global语句声明所要生成的宏变量 就可以成功的赋值。为什么呢?

报纸
goldbaodi 发表于 2012-4-5 04:51:04

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 08:42