我正在触摸一些我编写的SAS代码,发现我希望更有效地执行一段代码。我有一个名为“预测”的时间序列数据集,它只包含日期和给定日期的“预测”变量。SAS:在数据步骤中使用宏变量作为数字
我写一个简单的代码块借此变量和基本上砍它成一系列的变量,每一个代表一个日期:
data forecasts;
set forecasts;
obs=_n_;
array r(241);
do i=1 to dim(r);
if obs=i then r(i)=Forecast;
end; drop i; drop obs; drop forecast;
run;
然而,“R(241)”的一部分这段代码真的让我很烦恼。我已经有对应的时候,我需要执行此操作(称为“N”)的数量的宏变量,我宁愿只是将其插入阵列宣布直接,是这样的:
array r(&n)
等
但是,宏变量显然被认为是文本,所以即使我设法将宏变量导入到数据步骤中,变量r(& n)也不起作用,因为它不会读取'n'作为数字。除了将整个数据步骤包装到更广泛的宏之外,我怎样才能将'n'拉入数据步骤,然后将其转换为数字,以便此操作正常工作?
奇怪的是,我想我什么都试过了,除了刚刚&N,采用各种过于复杂的呼叫等的使用&N做的工作就好了,对不起,浪费你的时间在那里。 –