Pasar números a carácter en SAS es un tema reiterativo tanto en entradas al blog como en búsquedas. Pero se le puede dar otra vuelta de tuerca. Se trata de transformar fechas a variables alfanuméricas, pero en este caso vamos a poner las fechas en formato español. Ejecutad este ejemplo en SAS:
data uno;
y = '30jan11'd;
c0 = put(y, ddmmyy10.);
c1 = upcase(put(y, ESPDFDD.));
c2 = upcase(put(y, ESPDFDE.));
c3 = upcase(put(y, ESPDFDN.));
c4 = upcase(put(y, ESPDFDT.));
c5 = upcase(put(y, ESPDFDWN.));
c6 = upcase(put(y, ESPDFMN.));
c7 = upcase(put(y, ESPDFMY.));
c8 = upcase(put(y, ESPDFWDX.));
c9 = upcase(put(y, ESPDFWKX.));
run;
Imagino que todos tenéis el NLS de SAS instalado y no tenéis problemas con estos formatos. Resumamos qué nos ofrece cada una de estas transformaciones:
DDMMYY10.es el más habitual y nos genera30/01/2011; podemos jugar con la longitud.ESPDFDD.genera30.01.2011, un formato que personalmente utilizo mucho.ESPDFDE.genera30ENE2011, probablemente el más habitual.ESPDFDN.genera un7, la semana del año.ESPDFDT.genera una fecha-hora con formato español (en este caso no tiene mucho sentido sin la parte de la hora).ESPDFDWN.nos pone el día de la semana:DOMINGO.ESPDFMN.nos pone el mes:ENERO.ESPDFMY.generaENE11, práctico para sumarizaciones.ESPDFWDX.genera30 DE ENERO DE 2011.ESPDFWKX.generaDOMINGO, 30 DE ENERO DE 2011, un formato que no he usado nunca.
Estos formatos SAS los conozco gracias a un lector del blog. Al César lo que es del César: aquí aprendemos todos. Es interesante recogerlos todos juntos para que esta entrada quede como una referencia de la transformación de fechas en textos en SAS. Saludos.