Llega un gran número de visitas a AyD buscando cómo transformar en SAS variables carácter a numéricas y viceversa. Pero estas visitas están muy poco tiempo, y me he planteado que los mensajes que hay dedicados al uso de PUT e INPUT no son claros. Por este motivo, planteo un truco SAS de transformación de variables muy corto y concreto. Como es habitual, lo vemos con ejemplos:
Transformar de carácter a numérico
data uno;
char = "2009";
num1 = char * 1;
num2 = input(char, best16.);
run;
proc contents data=uno;
run;
Dos formas de hacerlo: multiplicando por 1 o bien con INPUT(variable, formato).
De carácter a fecha
Una transformación muy habitual: de carácter a fecha SAS.
data uno;
char = "10/09/2009";
fecha = input(char, ddmmyy10.);
format fecha ddmmyy10.;
run;
proc contents data=uno;
run;
De numérico a carácter
data dos;
num = 2009;
char = put(num, 4.);
run;
proc contents data=dos;
run;
Transformamos con PUT(variable, formato). Creo que he dejado clara la metodología; de todos modos, si tenéis alguna duda o sugerencia: rvaquerizo@analisisydecision.es.