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


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, kwartał, rok itp.)
  • data rozpoczęcia : data rozpoczęcia
  • data końcowa : data końcowa
  • metoda : Zliczaj przedziały metodą dyskretną lub ciągłą

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

Przykład: użycie funkcji INTCK do obliczenia różnicy 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 14AUG2023
06AUG2022 10NOV2024
;
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, miesiącach, kwartałach i latach:

 /*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);
    qtr_diff = intck (' qtr ', start_date, end_date);
    years_diff = intck (' years ', start_date, end_date);
run ;

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

Funkcja INTCK w SAS-ie

Pięć nowych zmiennych pokazuje różnicę między datą_początkową i datą_końcową w dniach, tygodniach, miesiącach, kwartałach i latach.

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

 /*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 ');
    qtr_diff = intck (' qtr ', start_date, end_date, ' c ');
    years_diff = intck (' years ', 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 przekonwertować DateTime na datę w SAS
Jak dodać dni do daty w SAS
Jak uzyskać dzień tygodnia na podstawie daty w SAS

Dodaj komentarz

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