Arrays 使用DO循环重命名SAS中的一组变量
我一直在尝试使用数组和DO循环从一个标尺重命名一组变量,但没有成功。这似乎是一项非常简单的任务。对我的错误有什么建议吗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) =
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代码>也是可以接受的-无论如何,这比把它们一一拼写出来要容易得多