Arrays 使用DO循环重命名SAS中的一组变量

Arrays 使用DO循环重命名SAS中的一组变量,arrays,sas,rename,do-loops,Arrays,Sas,Rename,Do Loops,我一直在尝试使用数组和DO循环从一个标尺重命名一组变量,但没有成功。这似乎是一项非常简单的任务。对我的错误有什么建议吗 ARRAY ATRSS (i) ATRSS_1 ATRSS_12 ATRSS_13 ATRSS_25 ATRSS_29 ATRSS_30 ATRSS_32 ATRSS_33 ATRSS_35 ATRSS_36;; Array DIS (10) $ DIS1-DIS10; DO i = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10; DIS (i) =

我一直在尝试使用数组和DO循环从一个标尺重命名一组变量,但没有成功。这似乎是一项非常简单的任务。对我的错误有什么建议吗

ARRAY ATRSS (i) ATRSS_1  ATRSS_12 ATRSS_13 ATRSS_25 ATRSS_29 ATRSS_30 ATRSS_32 ATRSS_33 ATRSS_35 ATRSS_36;;
Array DIS (10) $ DIS1-DIS10; 

DO i = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10;
    DIS (i) = ATRSS(i);
END;
我得到一个错误: 不允许混合使用隐式和显式数组下标


谢谢

数组atrsatrss_1

把第一行的(i)去掉,你就没事了

我想指出的是,你没有重命名,本质上-你不能这样做重命名-但它当然实现了同样的目标

您可以进一步改进此功能,尽管它可以按原样工作:

array atrss atrss_1 atrss_12 atrss_13 atrss_25 atrss_29 atrss_30 atrss_32 atrss_33 atrss-35 atrss_36;
array dis(10);

do i = 1 to dim(atrss);
 dis[i] = atrss[i];
end;
如果您更改ATRS中的元素数量,这会使它稍微灵活一些<代码>do i=1到10也是可以接受的-无论如何,这比把它们一一拼写出来要容易得多