Curso de lenguaje SAS con WPS. Librerías en WPS

Sobre el trabajo con librerías en SAS se pueden escribir libros. Todas las personas que han aprendido SAS conmigo a lo largo de los años han oído el mismo duscurso. «Hay que tener mucho cuidado con las librerías en SAS. Tenemos que tener muy claro que tablas son temporales, cuales han de ser permanentes. El problema del trabajo con SAS reside en el espacio en disco». Ya son decenas las personas que ahora hacen lo que pueden con SAS que han escuchado estas palabras y que siguen llenando discos y más discos incluso de los servidores con SAS más potentes de España.

Tendré que decir algo sobre la reducción de la velocidad máxima en España

[modo=»demagogia» on]

Me da pereza hablar de esto. Pero tengo que decir algo sobre la rebaja de la velocidad máxima en España de 120 km/h a 110 km/h. No voy a realizar un análisis muy pormenorizado del tema. Ya hay otros mejor preparados y cuyas opiniones si han de tenerse en cuenta. Desde luego la medida es una chapuza y se puede demostrar incluso con Excel menor velocidad no implicará menor consumo, sólo influirá en las horas de menor tráfico, en las horas donde menos combustible se consume. Imagino que harán algo de caja con la medida, que nunca viene mal para mantener el parque de coches oficiales, a ver si lideramos algo como el consumo en vehículos oficiales. Señores políticos, ¿saben lo que es el teletrabajo? En fin, lo que de verdad me preocupa es,¿cómo hemos llegado a esto? ¿Es necesario tomar medidas para reducir el gasto?

Macros (fáciles) de SAS. Determinar si existe una variable en un dataset

Duda que me plantearon el otro día. ¿Es posible determinar si existe una variable en un conjunto de datos SAS? Pretendían crear una macro variable que tomara el valor 1 si existía o 0 si no existía. Resolví la duda pero me guardé la macro para ponerla en el blog y así la podéis utilizar todos. De eso se trata, de compartir mis conocimientos con todos de forma altruista por ello prefiero que planteéis las dudas en el blog, no por correo. Así, entre todos, las podemos resolver. En este caso la macro es muy sencilla y tiene pocas líneas:

Más recortes para la ciencia española

A pesar de que no hay un movimiento tan importante como el que hubo años atrás el recorte continúa y estamos a niveles de 2007. Esta web sigue haciéndose eco de una situación que pone a España a la cola de la investigación. Y, diga lo que diga nuestra «clase política», sin investigación no hay futuro. También soy conocedor de primera mano de lo mal que lo están pasando los investigadores españoles. Y me sigue preocupando el incremento de visitas que tiene está web desde Alemania, Francia, Estados Unidos,… Al final tendremos lo que nos merecemos.

Curso de lenguaje SAS con WPS. Sentencias condicionales IF THEN

Las sentenciasIF THEN son básicas en la programación SAS y en todos los lenguajes. Su estructura es muy sencilla: IF <condición> THEN <acción>; ELSE <acción>. Todas estas sentencias empezarán con IF y como condición podemos poner una o varias. Para crearlas tenemos los operadores de comparación:

operadores-de-comparacion.png
Para concatenar condiciones emplearemos los operadores lógicos:

operadores-logicos.png

Y aplicando la lógica realizaremos las condiciones en nuestra programación con WPS. Entre las acciones que se ejecutarán cuando se cumpla la condición podemos destacar:

Nuestras funciones de R en menús con rpanel y svWidgets

Hoy quería acercarme a los paquetes **rpanel **y svWidgets para crear ventanas y menús respectivamente. La idea es sencilla, tenemos funciones en R que empleamos habitualmente y con ellas vamos arealizar un menú. Partimos de una función muy sencilla en R para eliminar datos con valores missing. [Por cierto, que cansado estoy de escribir palabras en inglés para facilitar las búsquedas, un valor missing es un valor perdido. Tras el lapso continúo]. Mi función:

El debate político o como analizar textos con WPS

¿Qué hacen los políticos españoles en el Congreso de los Diputados? Las tertulias radiofónicas están llenas de analístas políticos que podrán opinar sobre la labor del Congreso mejor que yo. Sin embargo yo tengo WPS, sé programar en SAS y en la web del Congreso están todas las sesiones y todas las intervenciones de la democracia. Pues con estos elementos vamos a iniciar un proceso de text mining, aunque no llegaremos a realizar ningún análisis complejo. Para comenzar, como siempre, necesito datos. Me he guardado la sesión del Congreso de los Diputados del día 26/01/2011 como web y posteriormente con Word la he salvado como fichero de texto (ojo con las codificaciones). De todos modos podéis descargaros aquí el fichero.

Trucos SAS. Borrando blancos innecesarios con COMPBL

Me ha llegado hoy una duda interesante. El problema era eliminar espacios en blanco innecesarios mediante alguna función de SAS. Más concretamente teníamos algo parecido a:

data prueba;

nombre="DE PEDRO                     MARTINEZ                ESTEBAN JOSE";

/*QUEREMOS LLEGAR A: DE PEDRO MARTINEZ ESTEBAN JOSE*/

run;

Pues bien, esto se puede hacer con la función COMPBL que “ remove blank spaces with SAS ”:

data prueba;

nombre="DE PEDRO                 MARTINEZ             ESTEBAN JOSE";

nombre2=compbl(nombre);

put nombre2;

run;

Una función fácil y práctica que seguro conocéis pero que no está mal recordar. Saludos.

Trucos SAS. Variables dicotómicas desde factores

El verbo dumificar es una invención propia y consiste en la acción de transformar una variable en una o n variables dicotómicas y eso es lo que os planteo en esta entrada, dumificar variables cualitativas con SAS. Partimos de una variable discreta o factor y hemos de transformarla en n variables, tantas como valores tome el factor, que toman valores 1 o 0 en función del grupo al valor que toma. Gráficamente:

Muchas variables no implican una mejor predicción

Me sigo durmiendo con el genio Juan Antonio Cebrián y sus pasajes de la historia, monográficos zona cero o tertulias 4 C. Sus programas de radio me acompañan desde hace muchos años. Estudiando, vigilando instalaciones del ejercito o en el turno de noche de una fábrica Cebrián y su gente ha estado conmigo. En alguna ocasión hablaron del código secreto de la Bíblia, un código existente en la Torá (Pentateuco) que se resume en «todo está escrito».Y es que una gran cantidad de información puede provocar relaciones al azar (o al azahar como le gusta decir a un buen amigo). Y esto puede pasarnos en nuestros modelos matemáticos. Ejecutemos el siguiente código en R:

Truco R. Paletas de colores en R

Paletas de colores en R

En cuántas ocasiones habéis querido dar color a un gráfico y por aligerar código creáis gráficos de este tipo:

x = rpois(100,as.integer(runif(10)*1000))

barplot(sort(x))

Pues en R esta labor puede costarnos muy poco si empleamos las paletas de colores. Hoy quiero presentaros las siguientes:

  • rainbow
  • heat.colors
  • terrain.colors
  • topo.colors

Ejemplos de uso:

require(graphics)

barplot(sort(x),col = rainbow(x),main="Paleta rainbow")

barplot(sort(x),col = heat.colors(length(x)),main="Paleta heat")

barplot(sort(x),col = topo.colors(length(x)),main="Paleta topo")

Comparad, metemos los 4 gráficos en una sóla ventana y tendremos la figura con la que iniciamos esta entrada:

Curso de lenguaje SAS con WPS. Subconjuntos de variables con DROP y KEEP

En esta entrega del curso vamos a trabajar con dos palabras fundamentales en WPS: DROP y KEEP. Drop elimina variables de un conjunto de datos y keep las mantiene. Ahora bien, estos elementos del lenguaje SAS se pueden emplear de diversas formas. Pueden ser una sentencia o pueden ser una opción de lectura y escritura del paso data. Para ilustrar este capítulo vamos a generar un dataset con datos aleatorios: