Jak obliczyć różnicę między dwiema datami w sas-ie


Możesz użyć funkcji INTCK w SAS-ie, aby szybko obliczyć różnicę między dwiema datami w SAS-ie.

Ta funkcja wykorzystuje następującą podstawową składnię:

INTCK (interwał, data początkowa, dane końcowe, metoda)

Złoto:

  • interwał : Interwał do obliczenia (dzień, tydzień, miesiąc, rok itp.)
  • data rozpoczęcia : data rozpoczęcia
  • data końcowa : data końcowa
  • metoda : czy liczyć pełne interwały („D” = Nie (domyślnie), „C” = Tak)

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

Przykład: Oblicz różnicę między datami w SAS-ie

Załóżmy, że mamy następujący zestaw danych w SAS-ie, który zawiera dwie zmienne daty:

 /*create dataset*/
data original_data;
    format start_date end_date date9. ;
    input start_date: date9. end_date: date9. ;
    datalines ;
01JAN2022 09JAN2022
01FEB2022 22FEB2022 
14MAR2022 04APR2022
01MAY2022 14AUG2022
;
run ;

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

Za pomocą poniższego kodu możemy obliczyć różnicę pomiędzy wartościami zmiennych start_date i end_date w dniach, tygodniach i miesiącach:

 /*create new dataset*/
data new_data;
    set original_data;
    days_diff = intck (' day ', start_date, end_date);
    weeks_diff = intck (' weeks ', start_date, end_date);
    months_diff = intck (' months ', start_date, end_date);
run ;

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

Trzy nowe zmienne pokazują różnicę między datą_początkową i datą_końcową w dniach, tygodniach i miesiącach.

Zauważ, że możemy użyć argumentu „ c ” w funkcji INTCK, aby obliczyć różnicę tylko w pełnych dniach, tygodniach i miesiącach:

 /*create new dataset*/
data new_data;
    set original_data;
    days_diff = intck (' day ', start_date, end_date, ' c ');
    weeks_diff = intck (' weeks ', start_date, end_date, ' c ');
    months_diff = intck (' months ', start_date, end_date, ' c ');
run ;

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

Zwróć uwagę na różnicę między tą tabelą a poprzednią tabelą.

W tej tabeli różnicę w tygodniach między 1 stycznia a 9 stycznia oblicza się jako 1, ponieważ między tymi datami może zmieścić się tylko jeden pełny tydzień.

Jednakże w poprzedniej tabeli różnicę w tygodniach obliczono na 2 , ponieważ pomiędzy tymi dwiema datami przypadały dwa częściowe tygodnie.

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 *