Como usar a função coalesce no sas (com exemplos)


Você pode usar a função COALESCE no SAS para retornar o primeiro valor não ausente em cada linha de um conjunto de dados.

O exemplo a seguir mostra como usar esta função na prática.

Exemplo: como usar COALESCE no SAS

Suponha que temos o seguinte conjunto de dados no SAS que contém valores ausentes:

 /*create dataset*/
data original_data;
    input team $points rebounds assists;
    datalines ;
Warriors 25 8 7
Wizards. 12 6
Rockets. . 5
Celtics 24. 5
Thunder. 14 5
Spurs 33 19 .
Nets. . .
Mavericks. 8 10
Kings. . 9
Pelicans. 23 6
;
run ;

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

Podemos usar a função COALESCE para criar uma nova coluna que retorne o primeiro valor não omisso em cada linha entre as colunas de pontos, rebotes e assistências:

 /*create new dataset*/
data new_data;
    set original_data;
    first_non_missing = coalesce (points, rebounds, assists);
run ;

/*view new dataset*/
proc print data =new_data; 

Exemplo de função de mesclagem SAS

Veja como o valor da coluna first_non_missing foi escolhido:

  • Primeira fila: O primeiro valor não faltante entre pontos, rebotes e assistências foi 25 .
  • Segunda fila: O primeiro valor não faltante entre pontos, rebotes e assistências foi 12 .
  • Terceira linha: O primeiro valor não faltante entre pontos, rebotes e assistências foi 5 .

E assim por diante.

Nota nº 1 : Se todos os valores estiverem faltando (como na linha 7), a função COALESCE simplesmente retornará um valor faltante.

Nota #2 : A função COALESCE só funciona com variáveis numéricas. Se você quiser retornar o primeiro valor não ausente em uma lista de variáveis de caracteres, use a função COALESCEC .

Recursos adicionais

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

Como normalizar dados no SAS
Como substituir caracteres em uma string no SAS
Como substituir valores ausentes por zero no SAS
Como remover duplicatas no SAS

Add a Comment

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