Publicado el :
Macro CREATION_INTERNE

Funciones de Inicio y Fin de Mes (BeginMonth, EndMonth)

Este código también está disponible en: Deutsch English Français
En espera de validación
El script SAS© proporcionado crea y prueba dos funciones de usuario, BeginMonth y EndMonth, utilizando PROC FCMP. La función BeginMonth calcula el primer día del mes para una fecha dada, mientras que EndMonth calcula el último día. Estas funciones aprovechan la función INTNX de SAS©. El script comienza generando un conjunto de datos de prueba ('test') con varias fechas para ilustrar su uso. Luego, aplica estas funciones al conjunto de datos 'test' para agregar nuevas variables 'FirstDay' y 'LastDay', formateadas como fechas.
Análisis de datos

Type : CREATION_INTERNE


Los datos utilizados ('test') se crean directamente en el script a través de un paso DATA y la instrucción DATALINES. No hay dependencia de fuentes de datos externas o de las bibliotecas SAS predeterminadas como SASHELP para los datos de entrada.

1 Bloque de código
DATA STEP Data
Explicación :
Este bloque DATA STEP crea un conjunto de datos llamado 'test'. Define una variable 'date', le aplica los formatos INFORMAT (para lectura) y FORMAT (para visualización) 'date9.', y luego la rellena con valores de fecha especificados a través de la instrucción DATALINES. Este conjunto de datos sirve como ejemplo para probar las funciones FCMP.
¡Copiado!
1DATA 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 ;
22RUN;
2 Bloque de código
PROC FCMP
¡Copiado!
1PROC FCMP outlib=work.cat_function.test;
2 function BeginMonth(DateDay);
3 res=intnx('month', DateDay, 0, 'b');
4 return(res);
5 endsub;
6RUN;
3 Bloque de código
PROC FCMP
¡Copiado!
1PROC FCMP outlib=work.cat_function.test;
2 function EndMonth(DateDay);
3 res=intnx('month', DateDay, 0, 'e');
4 return(res);
5 endsub;
6RUN;
4 Bloque de código
DATA STEP
¡Copiado!
1DATA test;
2 SET test;
3 FORMAT FirstDay lastDay DATE9.;
4 FirstDay=BeginMonth(date);
5 LastDay=EndMonth(date);
6RUN;
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 : Creation date : 14/04/2017 (fr) Last update : 14/04/2017 (fr) Author(s) : Nicolas DUPONT