SAS - Data i godziny
Daty IN SAS to szczególny przypadek wartości liczbowych. Każdemu dniu przypisywana jest określona wartość liczbowa, począwszy od 1 stycznia 1960 r. Dacie tej przypisywana jest wartość 0, a data następna ma wartość 1 i tak dalej. Poprzednie dni do tej daty są reprezentowane przez -1, -2 i tak dalej. Dzięki temu podejściu SAS może reprezentować dowolną datę w przyszłości i dowolną datę w przeszłości.
Kiedy SAS odczytuje dane ze źródła, konwertuje odczytane dane na określony format daty, jak określono w formacie daty. Zmienna do przechowywania wartości daty jest zadeklarowana z wymaganymi odpowiednimi informacjami. Data wyjściowa jest wyświetlana przy użyciu formatów danych wyjściowych.
SAS Date Informat
Dane źródłowe można poprawnie odczytać przy użyciu określonych informacji o dacie, jak pokazano poniżej. Cyfra na końcu informacji wskazuje minimalną szerokość ciągu daty, który ma być odczytany w całości przy użyciu informatu. Mniejsza szerokość da nieprawidłowy wynik. W przypadku SAS V9 istnieje ogólny format datyanydtdte15. który może przetwarzać dowolne dane wejściowe.
Data wprowadzenia | Szerokość daty | Informat |
---|---|---|
03.11.2014 | 10 | mmddyy10. |
11.03.14 | 8 | mmddyy8. |
11 grudnia 2012 | 20 | worddate20. |
14mar2011 | 9 | data9. |
14-mar-2011 | 11 | data11. |
14-mar-2011 | 15 | anydtdte15. |
Przykład
Poniższy kod przedstawia odczyt różnych formatów dat. Należy pamiętać, że wszystkie wartości wyjściowe są tylko liczbami, ponieważ nie zastosowaliśmy żadnych instrukcji formatu do wartości wyjściowych.
DATA TEMP;
INPUT @1 Date1 date11. @12 Date2 anydtdte15. @23 Date3 mmddyy10. ;
DATALINES;
02-mar-2012 3/02/2012 3/02/2012
;
PROC PRINT DATA = TEMP;
RUN;
Po wykonaniu powyższego kodu otrzymujemy następujące dane wyjściowe.
Format wyjściowy daty SAS
Daty po odczytaniu można przekonwertować na inny format zgodnie z wymaganiami wyświetlacza. Osiąga się to za pomocą instrukcji formatu dla typów dat. Mają taki sam format jak informacje.
Przykład
W poniższym przykładzie data jest odczytywana w jednym formacie, ale wyświetlana w innym formacie.
DATA TEMP;
INPUT @1 DOJ1 mmddyy10. @12 DOJ2 mmddyy10.;
format DOJ1 date11. DOJ2 worddate20. ;
DATALINES;
01/12/2012 02/11/1998
;
PROC PRINT DATA = TEMP;
RUN;
Po wykonaniu powyższego kodu otrzymujemy następujące dane wyjściowe.