Как использовать опцию 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *