Die verwendeten Daten ('test') werden direkt im Skript über einen DATA-Schritt und die DATALINES-Anweisung erstellt. Es gibt keine Abhängigkeit von externen Datenquellen oder den Standard-SAS-Bibliotheken wie SASHELP für die Eingabedaten.
1 Codeblock
DATA STEP Data
Erklärung : Dieser DATA STEP-Block erstellt einen Datensatz namens 'test'. Er definiert eine Variable 'date', wendet die INFORMAT- (zum Lesen) und FORMAT-Formate (zur Anzeige) 'date9.' darauf an und füllt sie dann mit Datumsangaben, die über die DATALINES-Anweisung angegeben werden. Dieser Datensatz dient als Beispiel zum Testen der FCMP-Funktionen.
Kopiert!
data test;
input date;
informat date date9.;
format date date9.;
datalines;
31DEC2016
01JAN2017
15FEB2017
15FEB2016
08JAN2017
09JAN2017
25DEC2017
31DEC2017
01JAN2018
05JAN2017
05APR2017
09JUL2017
10NOV2017
31DEC2017
15MAR2017
;
run;
1
DATA test;
2
INPUT date;
3
informat date date9.;
4
FORMAT date date9.;
5
DATALINES;
6
31DEC2016
7
01JAN2017
8
15FEB2017
9
15FEB2016
10
08JAN2017
11
09JAN2017
12
25DEC2017
13
31DEC2017
14
01JAN2018
15
05JAN2017
16
05APR2017
17
09JUL2017
18
10NOV2017
19
31DEC2017
20
15MAR2017
21
;
22
RUN;
2 Codeblock
PROC FCMP
Erklärung : Diese PROC FCMP-Prozedur definiert eine Benutzerfunktion namens 'BeginMonth'. Die Funktion akzeptiert ein Argument 'DateDay' (ein numerisches SAS-Datum) und verwendet die SAS-Funktion INTNX, um das Monatsanfangsdatum ('b') zu berechnen, das 'DateDay' entspricht, ohne Versatz ('0'). Die Funktion wird im Katalog 'work.cat_function.test' gespeichert und gibt den ersten Tag des Monats zurück.
Erklärung : Diese PROC FCMP-Prozedur definiert eine Benutzerfunktion namens 'EndMonth'. Ähnlich wie 'BeginMonth' akzeptiert sie ein Argument 'DateDay' und verwendet INTNX, um das Monatsenddatum ('e') zu berechnen, das 'DateDay' entspricht, ohne Versatz. Die Funktion wird ebenfalls im Katalog 'work.cat_function.test' gespeichert und gibt den letzten Tag des Monats zurück.
Erklärung : Dieser DATA STEP-Block liest den vorhandenen Datensatz 'test'. Er fügt zwei neue Variablen, 'FirstDay' und 'LastDay', hinzu und wendet das Format 'date9.' auf sie an. Anschließend ruft er die zuvor definierten FCMP-Funktionen 'BeginMonth' und 'EndMonth' auf, wobei er die Variable 'date' übergibt, um den ersten bzw. letzten Tag jedes Monats zu berechnen. Die Ergebnisse werden in den neuen Variablen des Datensatzes 'test' gespeichert.
Kopiert!
data test;
set test;
format FirstDay lastDay DATE9.;
FirstDay=BeginMonth(date);
LastDay=EndMonth(date);
run;
1
DATA test;
2
SET test;
3
FORMAT FirstDay lastDay DATE9.;
4
FirstDay=BeginMonth(date);
5
LastDay=EndMonth(date);
6
RUN;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Creation date : 14/04/2017 (fr)
Last update : 14/04/2017 (fr)
Author(s) : Nicolas DUPONT
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.