如何在SAS中创建与另一个阵列具有相同维度的阵列

kbj*_*ing 3 arrays dynamic sas

我有一个非常简单的问题,可能有一个明显的答案,......但它一直在逃避我.也许有人可以帮忙?

问题是这......

我说定义一个时期

%let analysis = y_1005 -- y_1143;
Run Code Online (Sandbox Code Playgroud)

其中y_1005定义了从2010年第5周到2011年第43周的一些变量.然后由此我定义了一个数组

array period(*) &analysis;
Run Code Online (Sandbox Code Playgroud)

现在我想定义一个与第一个数组具有相同维度的第二个数组,我想有一个聪明的方法来做到这一点,比如

array new_array(dim(period));
Run Code Online (Sandbox Code Playgroud)

但这显然不起作用.我尝试了各种各样的东西,但我无法让它发挥作用.如何在创建数组时调用"dim(period)",或者以其他方式执行此操作?

ste*_*lan 5

怎么样:

%let analysis = y_1005 - y_1143;

data test;
    array period(*) &analysis;
    call symput ("n_periods", dim(period));
run;

data test2;
    array new_array(&n_periods.);
run;
Run Code Online (Sandbox Code Playgroud)

(另见我对原帖的评论)