Los datos se descargan desde una URL externa: 'http://mba.tuck.dartmouth.edu/pages/faculty/ken.french/ftp/F-F_Research_Data_Factors_daily_CSV.zip'. Luego son procesados y almacenados en un conjunto de datos SAS interno.
1 Bloque de código
DEFINICIÓN DE MACRO
Explicación : Define la macro `download_ff3` con un parámetro `outData` para especificar el nombre del conjunto de datos de salida (por defecto 'ff3'). Declara variables locales `fn`, `rsp`, `ff` y les asigna nombres de archivo únicos aleatorios para los filerefs temporales utilizados para la descarga y el acceso al ZIP.
Explicación : Asigna un fileref (`&rsp`) al nombre de archivo temporal (`&fn`) para el archivo ZIP descargado. `PROC HTTP` se utiliza luego para realizar una solicitud GET a la URL especificada y descargar el contenido (el archivo ZIP) en el archivo asociado al fileref `&rsp`.
Explicación : Asigna un fileref (`&ff`) al archivo ZIP descargado para acceder a él como una biblioteca ZIP. Se inicia un `DATA STEP` para crear el conjunto de datos especificado por `&outData`. La instrucción `INFILE` lee el archivo CSV 'F-F_Research_Data_Factors_daily.CSV' dentro del ZIP, utilizando la coma como delimitador, gestionando los valores faltantes y leyendo desde la primera línea. Se definen informatos para las variables de fecha y numéricas. Las variables se leen y una condición `if ^missing(date)` filtra los registros con una fecha faltante. Se utiliza un bucle `ARRAY` para dividir por 100 las cuatro variables de factores (Mkt_RF, SMB, HML, RF) para convertirlas en porcentajes. La variable de iteración `i` se elimina posteriormente.
¡Copiado!
filename &ff zip "&fn";
data &outData;
infile &ff(F-F_Research_Data_Factors_daily.CSV) delimiter = ',' MISSOVER DSD lrecl=32767 firstobs=1 ;
informat Date yymmdd8.;
informat Mkt_RF best32. ;
informat SMB best32. ;
informat HML best32. ;
informat RF best32. ;
format Date date9. ;
format Mkt_RF best12. ;
format SMB best12. ;
format HML best12. ;
format RF best12. ;
input
Date
Mkt_RF
SMB
HML
RF
;
if ^missing(date);
array vars[4] Mkt_RF
SMB
HML
RF;
do i=1 to 4;
vars[i] = vars[i]/100;
end;
drop i;
run;
Explicación : Libera los filerefs `&rsp` y `&ff` que se utilizaron para los archivos temporales, asegurando una limpieza de los recursos. `%mend` marca el final de la definición de la macro.
¡Copiado!
filename &rsp clear;
filename &ff clear;
%mend;
1
filename &rsp clear;
2
filename &ff clear;
3
%mend;
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.
Información de copyright : Copyright (c) 2015 by The Financial Risk Group, Cary, NC, USA.
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.