BookmarkSubscribeRSS Feed
Tip Semanal 014: Crear variables acumulativas
Berenice25
SAS Employee

¿Variables acumulativas? ¿Variables acumuladoras? ¿Variables de acumulación?

 

Más allá de las sutilezas del lenguaje, que puede variar en los distintos países y en distintas áreas de conocimiento, es posible que las necesitemos calcular. 

En este Tip te ofrecemos algunos ejemplos de cómo hacerlo. 

 


/****************************************************************************/
/* Uso de la sentencia RETAIN para crear variables acumulativas             */								
/****************************************************************************/


/*-------------------*/
/* inicio del código */
/*-------------------*/

/*------------------------------------------------------*/
/* Para comprobar el efecto de Retain es aconsejable 	*/
/* comentar las sentencias que lo incluyen.				*/
/*------------------------------------------------------*/


data test1;
	infile DATALINES dsd missover;
	input varnum1 varnum2;
	cards;
1, 0.5 
0.1, 4
7, 8
1, 10
;

data test_acumula_tradicional;
	set work.test1;
	retain acum_varnum1 0 acum_varnum2 100;  /* crea las variables acumuladoras 'acum_varnum1' y 'acum_varnum2' 
												y las inicializa con los valores 0 y 100 respectivamente */
	acum_varnum1=Sum(acum_varnum1, varnum1);  /* Atención: ¡la función 'Sum' ignora los missings! */
	acum_varnum2=Sum(acum_varnum2, varnum2);
run;

data test_acumula_actual;
	set work.test1;
	retain acum_varnum2 100;  /* se necesita usar 'Retain' para la variable 'acum_varnum2' porque el valor 
								inicial no es cero; si el valor inicial fuera cero esta sentencia no sería necesaria */
	acum_varnum1 + varnum1;  /* no es necesario usar 'Retain' porque esta sentencia es un método abreviado que 
								da el mismo resultado que el programa anterior, ¡todo en una única sentencia! */
	acum_varnum2 + varnum2;
run;

/*-------------------*/
/* fin del código    */
/*-------------------*/

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

Article Labels
Contributors