Die Daten werden vollständig über Aufrufe der KOSIS Web-API (Korean Statistical Information Service) aus einer externen Quelle abgerufen. Das Skript hängt nicht von vorab existierenden Daten ab.
1 Codeblock
%LET / LIBNAME
Erklärung : Initialisierung globaler Makrovariablen. 'lib' definiert den Ausgabepfad, 'String01' enthält einen API-Schlüssel, 'var_want' listet die zu behaltenden Spalten auf. Ein 'json'-Libname wird dem Ausgabepfad zugewiesen, um SAS-Tabellen zu speichern.
Kopiert!
%let lib=C:\Json\;
%let String01=NjdhZTg3ZTM1OGEzZGMyOGIyZWE0ZmIxZTBiMDg0ZTg=;/*apiKey*/
%let var_want=PRD_DE/*연도*/ C1 C1_NM C3_NM/*연령*/ DT/*수*/;/*원하는 변수만 남기기, 전부 남기고 싶으면 공란*/
libname json "&lib";
%let var_want=PRD_DE/*연도*/ C1 C1_NM C3_NM/*연령*/ DT/*수*/;/*원하는 변수만 남기기, 전부 남기고 싶으면 공란*/
4
LIBNAME json "&lib";
2 Codeblock
Macro Data
Erklärung : Definition des Makros '%json'. Dieses Makro iteriert über einen Datumsbereich, konstruiert für jede Iteration eine URL für die KOSIS-API, führt einen PROC HTTP aus, um die JSON-Daten abzurufen, liest diese mit LIBNAME JSON, transformiert sie mit PROC TRANSPOSE zum Pivotieren und sammelt sie in einer finalen SAS-Tabelle.
Kopiert!
%macro json(data_final, String02, String03, String04, String05, String06, String07, String08, String09, String10, String11, String12, String13, String14, date_s, date_e);
data "&lib.&data_final";run;
%do date_want=&date_s %to &date_e;
%let url=http://kosis.kr/openapi/Param/statisticsParameterData.do?method=getList&apiKey=&String01&itmId=&String12&objL1=&String04&objL2=&String05&objL3=&String06&objL4=&String07&objL5=&String08&objL6=&String09&objL7=&String10&objL8=&String11&format=json&jsonVD=Y&prdSe=&String14&startPrdDe=&date_want&endPrdDe=&date_want&loadGubun=&String13&orgId=&String02&tblId=&String03;
filename out temp;proc http url="&url" method="get" out=out;run;
libname raw json fileref=out;
data "&lib.temp";set raw.alldata;if p1='TBL_NM' then group+1;/*자동으로 p1의 첫번째 값을 'TBL_NM'대신 들어가도록 하는 방법을 못 찾겠습니다.*/run;
proc transpose data="&lib.temp" out="&lib.data_one"(drop=_:);by group;id P1;var Value;run;
data "&lib.data_one";set "&lib.data_one"(keep=&var_want);run;
data "&lib.&data_final";set "&lib.&data_final" "&lib.data_one";run;
%end;
data "&lib.&data_final";set "&lib.&data_final";if _n_=1 then delete;run;
%mend;
Erklärung : Zweimaliger Aufruf des Makros '%json'. Der erste Aufruf lädt statistische Daten auf Bundeslandebene ('data_state') herunter. Der zweite Aufruf lädt Daten auf Stadtebene ('data_city') herunter. Beide Extraktionen umfassen den Zeitraum von 1993 bis 2017.
Erklärung : Dieser letzte DATA STEP modifiziert die Tabelle 'json.data_city'. Er benennt die Spalten in explizitere Namen um (Year, Div, Old, Num), konvertiert numerische Variablen, die als Text gespeichert sind, in ein numerisches Format und wählt die finalen Spalten für die Analyse aus.
Kopiert!
data json.data_city;
set json.data_city;
Year=PRD_DE+0;/*연도*/
Div_num=C1;
Div=C1_NM;
Old=C3_NM;
Num=DT+0;/*수*/
keep Year Div_num Div Old Num;
run;
1
DATA json.data_city;
2
SET json.data_city;
3
Year=PRD_DE+0;/*연도*/
4
Div_num=C1;
5
Div=C1_NM;
6
Old=C3_NM;
7
Num=DT+0;/*수*/
8
keep Year Div_num Div Old Num;
9
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.
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.