Как проверить, существует ли набор данных в sas (с примером)


Вы можете использовать следующий макрос в SAS, чтобы быстро проверить, существует ли набор данных:

 %macro check_exists(data);
   %if %sysfunc ( exist (&data.)) %then %do ;
      %put Dataset Exists;
   %end ;
   %else %do ;
      %put Dataset Does Not Exist;
   %end ;
%mend check_exists;

Когда вы запускаете этот макрос, он возвращает «Набор данных существует», если набор данных существует.

В противном случае он вернет «Не существует».

В следующем примере показано, как использовать этот макрос на практике.

Пример: проверьте, существует ли набор данных в SAS.

Предположим, мы создаем в SAS следующий набор данных с именем data1 :

 /*create dataset*/
data data1;
    input hours score;
    datalines ;
1 64
2 66
4 76
5 73
5 74
6 81
6 83
7 82
8 80
10 88
;
run ;

/*view dataset*/
proc print data =data1; 

Мы можем определить следующий макрос, чтобы проверить, существует ли набор данных:

 %macro check_exists(data);
   %if %sysfunc ( exist (&data.)) %then %do ;
      %put Dataset Exists;
   %end ;
   %else %do ;
      %put Dataset Does Not Exist;
   %end ;
%mend check_exists;

Затем мы можем запустить этот макрос, чтобы проверить, существует ли набор данных с именем data1 :

 /*check if dataset called data1 exists*/
%check_exists (data1);

Просматривая журнал, мы видим, что макрос возвращает «Существует», поскольку data1 существует:

Теперь предположим, что мы также запускаем макрос, чтобы проверить, существует ли набор данных с именем data2 :

 /*check if dataset called data2 exists*/
%check_exists (data2);

Просматривая журнал, мы видим, что макрос возвращает значение «Не существует», поскольку набор данных с именем data2 никогда не создавался.

Примечание . Полную документацию по функции EXIST в SAS можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:

Как удалить наборы данных в SAS
Как переименовать переменные в SAS
Как создать новые переменные в SAS

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

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