以下是代码。
data WORK.TOTALSALES(keep=MonthSales{12});
set WORK.MONTHLYSALES(keep=Year Product Sales);
array MonthSales{12};
do i=1 to 12;
MonthSales{i}=Sales;
end;
drop i;
run;
非常感谢您的时间和关注。
答案 0 :(得分:3)
keep=
数据集选项不支持数组,但它支持顺序编号的变量。
data WORK.TOTALSALES(keep=MonthSales1-MonthSales12);
set WORK.MONTHLYSALES(keep=Year Product Sales);
array MonthSales{12};
do i=1 to 12;
MonthSales{i}=Sales;
end;
drop i;
run;
答案 1 :(得分:0)
SAS(R) 9.4 Language Reference: Concepts, Fifth Edition中记录的SAS阵列具有以下限制:
数组定义仅在DATA的持续时间内有效 步。如果你想在几个DATA步骤中使用相同的数组,那么 必须在每一步中重新定义数组。
因此,即使您在WORK.TOTALSALES
上使用array
(而不是tm
)数据集选项来获取数据步骤中的其他变量,该数组仍然不会成为其中的一部分输出数据集,因为它只存在于使用[
语句定义的数据步骤中。
此致 阿米尔。
答案 2 :(得分:0)
数据步骤中的SAS数组只是变量的逻辑分组。该分组仅适用于该数据步骤内的处理。像drop=
和keep=
这样的数据集选项由SAS IO系统处理,它独立于数据步骤。