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