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