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

标签 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) = ATRSS(i);
END;

我收到错误: 不允许混合使用隐式和显式数组下标。

谢谢!

最佳答案

数组 atrss atrss_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;

如果您更改 atrss 中的元素数量,这会使其更加灵活。 do i = 1 to 10; 也是可以接受的 - 无论如何,比将它们逐个拼写出来要容易得多。

关于arrays - 使用 DO 循环重命名 SAS 中的一组变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18643831/

相关文章:

SAS Enterprise Guide - 从本地磁盘读取分隔文件?

用于读取 SAS .xpt 文件的 pandas.read_sas() 不适用于存储在 Google Cloud Storage (GCS) 中的文件

bash - 通过在 bash 中向文件名添加数字来重命名文件

从R中的多列中删除字符串

php - 使用php将图像重命名为产品id

arrays - 如何在两个排序数组的并集中找到第 k 个最小的元素?

c# - 将数组的值分配给一行中的分隔变量

sas - 需要改变之前的值

arrays - 如何将默认参数设置为数组

arrays - 在 Powershell 中,如何将一组对象的一个​​属性连接成一个字符串?