【发布时间】:2017-10-06 12:10:32
【问题描述】:
我正在尝试按照以下方式重命名基于一个数组元素的变量,
%let var= class name gender;
data want;
set have;
%global noof;
array point(*)$ %str(&var) ;
a=dim(point);
call symputx('noof',a);
array newvar(&noof);
do i=1 to &noof;
newvar(i)=translate(point(i),',','.');
end;
drop &var;
do i=1 to &noof;
rename newvar(i)=vname(point(i));
end;
运行;
我想将新变量重命名为第一个数组元素。
日志:
rename newvar(i)=vname(point(i));
-
22
76
ERROR 22-322: Syntax error, expecting one of the following: -, :, =.
ERROR 76-322: Syntax error, statement will be ignored.
【问题讨论】:
-
您不能在 RENAME 语句中使用函数。在开始使用宏变量或宏代码生成 SAS 代码之前,写出您要生成的 SAS 代码。向我们展示您尝试生成的 SAS 代码。
-
我认为标题正是他想要的 - 他想用另一个数组的名称重命名数组中的变量。数据步骤中的代码对于问题来说是多余的。
-
@DomPazz 你是对的。我想我会改变这个问题。
-
对我在 sascommunities 网站上的新增强请求进行投票。 communities.sas.com/t5/SASware-Ballot-Ideas/…