Jak korzystać z funkcji coalesce w sas-ie (z przykładami)


Możesz użyć funkcji COALESCE w SAS-ie, aby zwrócić pierwszą brakującą wartość w każdym wierszu zbioru danych.

Poniższy przykład pokazuje, jak w praktyce wykorzystać tę funkcję.

Przykład: Jak używać COALESCE w SAS-ie

Załóżmy, że mamy następujący zestaw danych w SAS-ie, który zawiera brakujące wartości:

 /*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; 

Możemy użyć funkcji COALESCE , aby utworzyć nową kolumnę, która zwraca pierwszą brakującą wartość w każdym wierszu spośród kolumn punktów, zbiórek i asyst:

 /*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; 

Przykład funkcji scalania SAS

Oto jak została wybrana wartość kolumny First_non_missing :

  • Pierwszy rząd: Pierwszą wartością, której nie brakowało w liczbie punktów, zbiórek i asyst, było 25 .
  • Drugi rząd: Pierwszą wartością, której nie brakowało w liczbie punktów, zbiórek i asyst, było 12 .
  • Trzeci rząd: Pierwszą wartością, której nie brakowało w liczbie punktów, zbiórek i asyst było 5 .

I tak dalej.

Uwaga nr 1 : Jeśli brakuje wszystkich wartości (jak w linii 7), funkcja COALESCE po prostu zwróci brakującą wartość.

Uwaga nr 2 : Funkcja COALESCE działa tylko ze zmiennymi numerycznymi. Jeśli zamiast tego chcesz zwrócić pierwszą brakującą wartość z listy zmiennych znakowych, użyj funkcji COALESCEC .

Dodatkowe zasoby

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

Jak normalizować dane w SAS-ie
Jak zamienić znaki w ciągu w SAS-ie
Jak zastąpić brakujące wartości zerem w SAS-ie
Jak usunąć duplikaty w SAS-ie

Dodaj komentarz

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