При назначении макропеременной у вас не может быть математического выражения.
Итак, если а = 4 и b = 5
%LET Dim = &a.*&b.;
разрешается в DIM = "4*5" как строку, но вместо этого вы хотите 20.
для этого вам нужно выполнить математическую операцию в шаге данных:
data _null_;
temp= &a * &b;
call symputx('DIM', temp);
ARRAY Spline{&a.,&b.} B1-B&DIM;
run;
Также меня интересует ваш снимок экрана, кажется, что B = 5-1 (как строка), так что я думаю, вы уже выполнили математическую операцию при присвоении b, которая не удалась... %let b = 5-1; разрешается в строку "5-1", а не в 4...
поэтому в вашем примере все разрешается:
ARRAY Spline{4,5-1} B1-B4*5-1;
я думаю, ты хотел
ARRAY Spline{4,4} B1-B16;
поэтому разделите все математические операции в шаге данных...
person
kl78
schedule
16.07.2015