Jak korzystać z funkcji intnx w sas-ie (z przykładami)
Możesz użyć funkcji INTNX w SAS-ie, aby zwiększyć datę o określony interwał, taki jak dzień, tydzień, miesiąc itp.
Ta funkcja wykorzystuje następującą podstawową składnię:
INTNX (interwał, data_początkowa, przyrost)
Złoto:
- interwał : Interwał dodawany do daty (dzień, tydzień, miesiąc, rok itp.)
- start_date : Zmienna zawierająca daty rozpoczęcia
- przyrost : liczba interwałów do dodania
Aby odjąć przedział, podaj liczbę ujemną do argumentu inkrementacji .
Poniższe przykłady pokazują kilka typowych sposobów wykorzystania w praktyce funkcji INTNX z następującym zbiorem danych w SAS-ie:
/*create dataset*/
data original_data;
date format date9.;
input date:date9. dirty;
datalines ;
01JAN2022 50
01FEB2022 34
14MAR2022 26
01MAY2022 22
24AUG2022 27
28OCT2022 48
14NOV2022 97
04DEC2022 88
;
run ;
/*view dataset*/
proc print data = original_data;
Przykład 1: Użyj INTNX, aby dodać dni do tego dnia
Możemy użyć funkcji INTNX , aby utworzyć nową kolumnę o nazwie plus5days , która dodaje pięć dni do każdej daty w kolumnie daty :
/*create new dataset with column that adds 5 days to date*/
data new_data;
set original_data;
plus5days= intnx ('day', date, 5);
format plus5days date9.;
run ;
/*view dataset*/
proc print data = new_data;
Zwróć uwagę, że nowa kolumna o nazwie plus5days zawiera wartości z kolumny date z dodanymi pięcioma dniami.
Przykład 2: Użyj INTNX, aby odjąć dni od daty
Dni można także odejmować, po prostu używając wartości ujemnej w funkcji INTNX .
Na przykład możemy użyć poniższego kodu, aby odjąć pięć dni od każdej wartości w kolumnie daty :
/*create new dataset with column that subtracts 5 days from date*/
data new_data;
set original_data;
minus5days= intnx ('day', date, -5);
format minusdays date9.;
run ;
/*view dataset*/
proc print data = new_data;
Zwróć uwagę, że nowa kolumna o nazwie minus5days zawiera wartości z kolumny date po odjęciu pięciu dni.
Przykład 3: Użyj INTNX, aby znaleźć pierwszy dzień miesiąca
Możemy użyć funkcji INTNX , aby utworzyć nową kolumnę o nazwie pierwszy miesiąc , która będzie zawierała pierwszy dzień miesiąca dla każdej daty w kolumnie daty :
/*create new dataset with column that contains first day of the month*/
data new_data;
set original_data;
firstmonth = intnx ('month', date, 0);
format firstmonth date9.;
run ;
/*view dataset*/
proc print data =new_data;
Należy zauważyć, że nowa kolumna o nazwie pierwszy miesiąc zawiera pierwszy dzień miesiąca dla każdej daty w kolumnie daty .
Przykład 4: Użyj INTNX, aby znaleźć pierwszy dzień roku
Możemy również użyć funkcji INTNX , aby utworzyć nową kolumnę o nazwie pierwszy rok , która będzie zawierała pierwszy dzień roku dla każdej daty w kolumnie daty :
/*create new dataset with column that contains first day of the year*/
data new_data;
set original_data;
firstyear = intnx ('year', date, 0);
format firstyear date9.;
run ;
/*view dataset*/
proc print data =new_data;
Należy zauważyć, że nowa kolumna o nazwie pierwszy rok zawiera pierwszy dzień roku dla każdej daty w kolumnie daty .
Uwaga : Pełną dokumentację funkcji SAS INTNX można znaleźć tutaj .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w SAS-ie:
Jak przekonwertować DateTime na datę w SAS
Jak przekonwertować dotychczasową zmienną numeryczną w SAS-ie
Jak obliczyć różnicę między dwiema datami w SAS-ie