第一个是在%let n=length(xx);中 length函数不能使用吗?我试了下总是报错。
第二个问题是如何给宏传递形参呢?
比如:
data test;
set test1;
n=length(name);
%chage(&n);
run;
我想把n的值也就是name的长度传给chage这个宏,但是总是报错,我该如何写呢?

|
楼主: wencycooll
|
3818
9
[原创博文] 请问一下sas宏形参如何传递呢? |
|
大专生 13%
-
|
回帖推荐Jackywolf_2008 发表于3楼 查看完整内容 数据集变量和宏变量是两个概念,在同一个data step中不可使用数据集的变量给宏变量赋值,因为在run;语句提交前,宏变量还不存在。
你提的第一个问题可以这样写, 但是abc只能代表一个字符串或者是一个宏变量,不是数据集变量。
%let len=%sysfunc(length(abc));
%put &len;
第二个问题,可以这样写
data test;
set test1;
n=length(name);
call symput('n',n);
run;
%chage(&n);
| ||
|
|
| ||
|
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485
|
||
| ||
| ||
| ||
| ||
| ||
加好友,备注cda京ICP备16021002号-2 京B2-20170662号
京公网安备 11010802022788号
论坛法律顾问:王进律师
知识产权保护声明
免责及隐私声明


