viernes, 7 de agosto de 2015

Trasformado variables numéricas a carácter


Algo con lo que siempre nos enfrentamos cuando programamos en SAS es al casting de valores numéricos a carácter o de carácter a numéricos, en SAS EG  existen funciones  que nos permiten hacer este tipo de conversiones:

INPUT = Carácter a numérico

Mi_variable = input (variable_cadea, formato );

PUT =  Numérico a carácter

mi_variable = put(variable_numerica, formato);

sábado, 1 de agosto de 2015

El uso del IFC y IFN


Estas funciones  SAS son sentencias de control que permiten  evaluar condiciones como el IF.. THEN, y devuelven un valor como resultado después de evaluar la condición

IFC = El valor que devuelve la función después de evaluar las condicional debe ser estrictamente una cadena de caracteres

IFN =  El valor que devuelve la función después de evaluar las condicional debe ser estrictamente una valor numérico


Sintaxis

IFC ( <condicion>,  <si se cumple>, <si no se cumple >)

Ejemplo:

data  ejemplo;
length estatus $10.;
do i=1 to 10;
edad= i;
end;
estatus= ifc ( i<=6, "aprobado", "reprobado")
run;

La salida es la siguiente

edad|marca
1 |reprobado
2 |reprobado
3 |reprobado
4 |reprobado
5 |reprobado
6 |reprobado
7 |aprobado
8 |aprobado
9 |aprobado
10 |aprobado

Como calcular la edad en SAS


Obtener una diferencia en años entre ellas es un tema baladí. Ejecutad el siguiente código SAS para calcular la diferencia en años:

data uno;
   format fecha1 ddmmyy10.;
     do fecha1= 9000 to today();
      output;
    end;
run;

data uno;
set uno;
   format fecha2 ddmmyy10.;
   fecha2="15MAY2014"d;

  edad = int((fecha2-fecha1)/365.25);
  if month(fecha1)=5 and day(fecha1)=15;
run;
Visualizad el conjunto de datos uno, la serie de edad asusta 28,28,27,25,24,24,… Está claro que algo falla. Hace ya tiempo que hablamos de ello en este mismo blog. Los ceros y los unos con los que guardan estas máquinas las cosas a veces nos juegan estas malas pasadas. Para evitar este problema os sugiero que empleéis la función de SAS YRDIF con la base ‘AGE’. Replicamos el ejemplo:

data uno;
  format fecha1 ddmmyy10.;
   do fecha1= 9000 to today();
  output;
   end;
run;

data uno;
 set uno;
 format fecha2 ddmmyy10.;
 fecha2="15MAY2014"d;
 edad = int(yrdif(fecha1,fecha2,'AGE'));
run;

data uno;
 set uno;
 if month(fecha1)=5 and day(fecha1)=15;
run;


Uso del MERGE en SAS

A continuación se presentan los diferentes tipos de union de Tablas en SAS,


sábado, 11 de julio de 2015

Uso del DATALINES

Como utilizar el  DATALINES
Se pueden dar diferentes usos a este tipo de sentencia en SAS, desde la lectura de algunas líneas en SAS que pueden ser interpretadas como datos de entrada que asu vez estarán contenidos en un Data Set.
Uso
Es recomendable utilizar el DATALINES  siempre con una sentencia INPUT para poder dar lectura a los datos que se introducen directamente en la sentencia DATALINES  en sustitución de un archivo o una tabla SAS.
Siempre que utilicemos el  DATALINES como sentencia para la lectura de datos es necesario terminar con una sentencia  puto y coma  “;” para indicar el fin de la lectura de los datos
 
 

Ahora mostraremos un ejemplo de lectura de datos pero con la opción INFILE  de SAS, esta opción permite la entrada de datos de algún archivo de datos, en este caso el DATALINES funciona como un archivo de texto.