¿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 */
/*-------------------*/
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!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.