инициализировать несколько переменных в одной строке SAS

Новый программист SAS здесь.. в .NET мы можем присвоить одно значение нескольким переменным в одной строке, например так:

var1 = var2 = var3 = 0;

есть ли аналогичный синтаксис в SAS?


person hediedeternallifetobring    schedule 07.07.2016    source источник
comment
Вам не нужно инициализировать переменные SAS, что вы пытаетесь сделать, что требует инициализации? Если сумма, вместо этого используйте функцию SUM(), которая будет игнорировать отсутствующие значения или отсутствие инициализации.   -  person Reeza    schedule 07.07.2016


Ответы (2)


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);
person Tom    schedule 07.07.2016

Насколько я знаю, SAS не поддерживает множественное назначение.

SAS оценивает var1 = var2 = var3 = 0; как var1 = (var2 = var3 = 0); и возвращает значение 1 для var1, если var2 = var3 = 0, и 0 в противном случае.

person Sean    schedule 07.07.2016