首页 > 解决方案 > 使用值范围动态创建列

问题描述

我无法找到回答我查询的以前的帖子 - 很乐意关注重复帖子的链接。

我想根据范围(在 SAS 中)动态创建列 - 如下所示,这是行不通的

data work.test;
    set sashelp.air;
    format mb monyy.;
    do i = 1 to 10;
        mb&i = intnx('MONTH', date, -i, 'same');
    end;
run;

预期的结果是使用相应的值调用 10 个mb1mb10date-interval

任何帮助表示赞赏!

标签: sas

解决方案


您正在参与不需要的宏。请注意,我创建了数组 MB 并将 MB&I 替换为数组引用。我没有 SASHELP.AIR,所以今天才使用(),但你明白了。

data work.test;
   *set sashelp.air;;
   array mb[10];
   date = today();
   do i = 1 to dim(mb);
      mb[i] = intnx('MONTH', date, -i, 'same');
      end;
   format mb: monyy.;
   run;

推荐阅读