Jak sprawdzić, czy zbiór danych istnieje w sas-ie (z przykładem)


Możesz użyć poniższego makra w SAS-ie, aby szybko sprawdzić, czy zbiór danych istnieje:

 %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;

Po uruchomieniu tego makra zwracane jest „Zbiór danych istnieje”, jeśli zbiór danych istnieje.

W przeciwnym razie zwróci „Nie istnieje”.

Poniższy przykład pokazuje, jak w praktyce wykorzystać to makro.

Przykład: Sprawdź, czy zbiór danych istnieje w SAS-ie

Załóżmy, że tworzymy następujący zbiór danych w SAS-ie o nazwie 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; 

Możemy zdefiniować następujące makro, aby sprawdzić, czy zbiór danych istnieje:

 %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;

Możemy następnie uruchomić to makro, aby sprawdzić, czy zbiór danych o nazwie data1 istnieje:

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

Kiedy przeglądamy dziennik, widzimy, że makro zwraca opcję Czy istnieje, ponieważ dane1 istnieją:

Załóżmy teraz, że uruchamiamy makro, aby sprawdzić, czy istnieje zbiór danych o nazwie data2 :

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

Kiedy patrzymy na dziennik, widzimy, że makro zwraca wartość „Nie istnieje”, ponieważ zbiór danych o nazwie data2 nigdy nie został utworzony.

Uwaga : Pełną dokumentację funkcji EXIST w SAS-ie znajdziesz tutaj .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w SAS-ie:

Jak usunąć zbiory danych w SAS-ie
Jak zmienić nazwy zmiennych w SAS-ie
Jak utworzyć nowe zmienne w SAS-ie

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *