Como verificar se o conjunto de dados existe no sas (com exemplo)


Você pode usar a seguinte macro no SAS para verificar rapidamente se existe um conjunto de dados:

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

Quando você executa esta macro, ela retorna “Conjunto de dados existe” se existir um conjunto de dados.

Caso contrário retornará “Não existe”.

O exemplo a seguir mostra como usar esta macro na prática.

Exemplo: Verifique se o conjunto de dados existe no SAS

Suponha que criemos o seguinte conjunto de dados no SAS chamado 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; 

Podemos definir a seguinte macro para verificar se existe um conjunto de dados:

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

Podemos então executar esta macro para verificar se o conjunto de dados chamado data1 existe:

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

Quando visualizamos o log, podemos ver que a macro retorna Does Exist já que data1 existe:

Agora suponha que também executemos a macro para verificar se existe um conjunto de dados chamado data2 :

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

Quando olhamos o log, podemos ver que a macro retorna Does Not Exist, pois um conjunto de dados chamado data2 nunca foi criado.

Nota : Você pode encontrar a documentação completa da função EXIST no SAS aqui .

Recursos adicionais

Os tutoriais a seguir explicam como executar outras tarefas comuns no SAS:

Como excluir conjuntos de dados no SAS
Como renomear variáveis no SAS
Como criar novas variáveis no SAS

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *