Los datos se recuperan completamente de una fuente externa a través de llamadas a la API web de KOSIS (Korean Statistical Information Service). El script no depende de datos preexistentes.
1 Bloque de código
%LET / LIBNAME
Explicación : Inicialización de las variables macro globales. 'lib' define la ruta de salida, 'String01' contiene una clave API, 'var_want' lista las columnas a conservar. Se asigna una etiqueta 'json' a la ruta de salida para guardar las tablas SAS.
¡Copiado!
%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 Bloque de código
Macro Data
Explicación : Definición de la macro '%json'. Esta macro itera sobre un rango de fechas, construye una URL para la API KOSIS en cada iteración, ejecuta un PROC HTTP para recuperar los datos JSON, los lee con LIBNAME JSON, los transforma con PROC TRANSPOSE para pivotarlos y los acumula en una tabla SAS final.
¡Copiado!
%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;
Explicación : Llamada a la macro '%json' dos veces. La primera llamada descarga los datos estadísticos a nivel estatal ('data_state'). La segunda llamada descarga los datos a nivel de ciudad ('data_city'). Ambas extracciones cubren el período de 1993 a 2017.
Explicación : Este último DATA STEP modifica la tabla 'json.data_city'. Renombra las columnas con nombres más explícitos (Year, Div, Old, Num), convierte las variables numéricas almacenadas como texto a un formato numérico y selecciona las columnas finales para el análisis.
¡Copiado!
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;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.