Как использовать опцию in= в sas
Вы можете использовать опцию IN= в SAS для создания логической переменной, которая указывает, получено ли текущее наблюдение из набора входных данных.
Опция IN= обычно используется, когда вы добавляете два набора данных вместе и хотите знать, происходит ли определенная строка в результирующем наборе данных из одного из определенных входных наборов данных.
В следующем примере показано, как использовать опцию IN= на практике.
Пример: Как использовать опцию IN= в SAS
Предположим, у нас есть два набора данных, содержащих информацию о баскетболистах Восточной и Западной конференций НБА:
/*create East dataset*/
data east_data;
input team $points;
datalines ;
Celtics 22
Pistons 14
Nets 35
Hornets 19
Magic 22
;
run ;
/*create West dataset*/
data west_data;
input team $points;
datalines ;
Mavs 40
Rockets 39
Warriors 23
Lakers 19
Clippers 25
;
run ;
/*view datasets*/
proc print data =east_data;
proc print data =west_data;
Мы можем использовать следующий синтаксис для создания нового набора данных, который добавляет эти два набора данных:
/*create new dataset*/
data all_data;
set east_data west_data;
run ;
/*view new dataset*/
proc print data =all_data;
Обратите внимание, что каждая строка в каждом наборе данных принадлежит новому набору данных.
Чтобы узнать, из какого набора данных взята каждая строка, мы можем использовать опцию IN= следующим образом:
/*create new dataset*/
data all_data;
set east_data west_data( in =i);
if i then conf='West';
else conf='East';
run ;
/*view new dataset*/
proc print data =all_data;
Используя опцию IN= , мы можем создать новый столбец с именем conf , который принимает значение «Восток», если строка взята из набора данных с именем « east_data» , и значение «Запад», если строка взята из набора данных с именем «east_data». данные под названием ouest_data .
Обратите внимание, что мы также могли бы использовать только оператор IF без оператора ELSE для создания нового столбца, который просто принимает значение *, если строка взята из набора данных с именемeast_data :
/*create new dataset*/
data all_data;
set east_data( in =i) west_data;
if i then east_conf='*';
run ;
/*view new dataset*/
proc print data =all_data;
Используя опцию IN= , мы можем создать новый столбец с именемeast_conf , который принимает значение * , если строка взята из набора данных с именемeast_data , и не имеет значения, если строка взята из набора данных с именемwest_data .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:
Как использовать оператор NOT EQUAL в SAS
Как использовать оператор «НЕ В» в SAS
Как объединить, если A не B в SAS