Les données sont entièrement récupérées depuis une source externe via des appels à l'API web de KOSIS (Korean Statistical Information Service). Le script ne dépend pas de données préexistantes.
1 Bloc de code
%LET / LIBNAME
Explication : Initialisation des variables macro globales. 'lib' définit le chemin de sortie, 'String01' contient une clé API, 'var_want' liste les colonnes à conserver. Un libellé 'json' est assigné au chemin de sortie pour sauvegarder les tables SAS.
Copié !
%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 Bloc de code
Macro Data
Explication : Définition de la macro '%json'. Cette macro itère sur une plage de dates, construit une URL pour l'API KOSIS à chaque itération, exécute un PROC HTTP pour récupérer les données JSON, les lit avec LIBNAME JSON, les transforme avec PROC TRANSPOSE pour les pivoter, et les accumule dans une table SAS finale.
Copié !
%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;
Explication : Appel de la macro '%json' à deux reprises. Le premier appel télécharge les données statistiques au niveau de l'état ('data_state'). Le second appel télécharge les données au niveau de la ville ('data_city'). Les deux extractions couvrent la période de 1993 à 2017.
Explication : Ce dernier DATA STEP modifie la table 'json.data_city'. Il renomme les colonnes avec des noms plus explicites (Year, Div, Old, Num), convertit les variables numériques stockées en texte vers un format numérique, et sélectionne les colonnes finales pour l'analyse.
Copié !
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;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.