Новый программист SAS здесь.. в .NET мы можем присвоить одно значение нескольким переменным в одной строке, например так:
var1 = var2 = var3 = 0;
есть ли аналогичный синтаксис в SAS?
Новый программист SAS здесь.. в .NET мы можем присвоить одно значение нескольким переменным в одной строке, например так:
var1 = var2 = var3 = 0;
есть ли аналогичный синтаксис в SAS?
No.
Но есть и другие способы добиться такого рода вещей.
Наиболее распространенным было бы использование ARRAY и цикла DO.
array varlist var1 var2 var3 ;
do i=1 to dim(varlist);
varlist(i)=0;
end;
Вы можете использовать оператор ARRAY для инициализации переменных.
array varlist var1 var2 var3 (3*0);
Но это относится только к начальному значению на первой итерации шага данных.
Или вы можете проявить творческий подход и использовать функцию макроса для генерации кода.
%sysfunc(tranwrd(var1|var2|var3|,|,%str(=0;)))
Если вы хотите установить отсутствующие значения, вы можете использовать функцию CALL MISSING().
call missing(of var1 var2 var3);
Насколько я знаю, SAS не поддерживает множественное назначение.
SAS оценивает var1 = var2 = var3 = 0;
как var1 = (var2 = var3 = 0);
и возвращает значение 1 для var1
, если var2 = var3 = 0
, и 0 в противном случае.