X command (MS-DOS prompt) desde SAS

Como veo que a Raul le faltan algunas visitas para llegar a las 5000 (mensuales?), y dado que se curra esta web para dar a conocer múltiples trucos en R, SAS, WPS, et…, he decidido crear esta sencilla macro (si queremos que el X command se ejecute repetitivamente dentro de un bucle, solo puede hacerse dentro de una macro pues si la ejecutamos dentro de un paso data solo lo ejecuta 1 vez por más que escribamos do i=1 to 100;). El comando X lo que hace es traspasar la sentencia SAS a cmd o command del MS-DOS. Aqui solo lo limito hasta 5 en modo de ejemplo: ...

16 de junio de 2010 · danifernandez

Monográfico. Clasificación con SVM en R

Las máquinas de vectores de soporte (Support Vector Machines, SVM a partir de ahora) son un conjunto de técnicas estadísticas que nos permiten clasificar una población en función de la partición en subespacios de múltiples variables. Parte de la idea de dividir de forma lineal un conjunto de múltiples dimensiones. Creamos muchos hiperplanos que nos dividen las observaciones. Es una técnica que está ganando popularidad y que, por supuesto, podemos realizarla con R. Para ello tenemos algunos paquetes específicos como kvm, svmlight y e1071. Este último es al que pretendo acercarme hoy. ...

15 de junio de 2010 · rvaquerizo

Curso de lenguaje SAS con WPS. Variables

El elemento fundamental de los conjuntos de datos SAS son las variables. Ya las hemos referenciado en capítulos anteriores. Éstas pueden ser numéricas o alfanuméricas. Las variables se pueden crear, eliminar o se pueden recodificar. Todo esto siempre lo haremos mediante pasos DATA. Disponemos de un amplio número de funciones para que todas las variables se ajusten a nuestras necesidades. Las variables tienen los siguientes atributos: Nombre: no pueden exceder de 32 caracteres, empezar por un número ni tener espacios en blanco. Tipo: numérica o alfanumérica (carácter, precedida por $). Longitud: máximo 8 bytes para numérica y 1 a 32.000 para alfanumérica. Formato de salida: por defecto BEST12. para numéricas y $w. para alfanuméricas. Formato de entrada: similar al formato de salida. Etiqueta. Un tipo muy especial de variable es el valor perdido o missing. Por defecto, la representación del missing para una variable numérica es . y ' ' para una variable alfanumérica. Para todas las variables podemos emplear operadores de comparación (por ejemplo, en sentencias IF) y operadores lógicos. ...

14 de junio de 2010 · rvaquerizo

Macros SAS. Agrupando variables categóricas

Agrupar variables con SAS es una de las tareas más habituales. Las variables continuas las agrupamos según un criterio y las discretas, en principio, ya vienen agrupadas. El problema con las variables discretas es que pueden tomar muchos valores, muchos de ellos con poco peso que habitualmente agrupamos en un rango “OTROS”. Pues bien, hoy quería mostraros una macro muy sencilla que utilizo para crear ese cajón desastre. El código tiene algún aspecto muy interesante; es el que os pongo a continuación: ...

14 de junio de 2010 · rvaquerizo

Un homenaje a Malthus con R

Hoy quería yo reivindicar la figura de un tipo bastante maltratado: Thomas Malthus. Maltratado porque era un poco reaccionario y facha, y parece que eso es suficiente para que se olviden de uno, aunque fuera el tipo que más ha aportado a la demografía. Y el homenaje tenía que hacérselo con el paquete de R que más utilizo últimamente, el XML, y algunos sencillos gráficos creados con R-commander. Malthus lo que venía a decir es que somos muchos, demasiados, y encima la cosa tenía muy mala pinta. Parece que tiene razón, pero vamos a verlo gráficamente. Comenzamos: ...

13 de junio de 2010 · rvaquerizo

Excelente descripción de los PIAS

Leído en Bancos y Cajas On Line: http://www.bancosycajasonline.com/2010/06/09/planes-individuales-de-ahorro-sistematico-pias/ Hoy repasamos los planes individuales de ahorro sistemático (PIAS), que son productos financieros con formato de seguro de vida ahorro, comercializados por entidades bancarias y de seguros, que permiten recibir una renta mensual vitalicia por un importe conocido de antemano y que cobraremos cuando nosotros decidamos. Además, podemos hacerlos líquidos en cualquier momento. Recomendable lectura.

11 de junio de 2010 · rvaquerizo

Truco SAS. Duplicar registros si cumplen una condición

Más que un truco, es una “tontería” SAS, pero sirve para entender mejor el paso DATA. Se trata de duplicar registros si cumplen una condición. Es decir, añadimos una fila en SAS si se cumple la condición: data uno; do id_cliente = 1 to 10000; output; end; run; data uno_duplicado; set uno; output; if mod(id_cliente, 2) = 0 then output; run; No puede ser más sencillo, pero me llegó esta duda y me parece un buen ejemplo de uso de OUTPUT. Saludos.

11 de junio de 2010 · rvaquerizo

Curso de lenguaje SAS con WPS. Ejecuciones

Hasta la fecha nos hemos aproximado a la interfaz de WPS y hemos ejecutado algunos scripts para trabajar con conjuntos de datos SAS y, sobre todo, entender qué hace el paso DATA. También hemos analizado qué son y cómo trabajan las librerías WPS. En nuevas entregas nos seguiremos centrando en el trabajo con datasets temporales y permanentes. La intención es conocer bien qué hace DATA y establecer una metodología de trabajo con WPS. SAS es un lenguaje orientado a la gestión de datos, y las personas acostumbradas a programar en otros lenguajes pueden tener muchos problemas conceptuales. Al final, con este manual intentaremos ayudar a todos aquellos que trabajáis con SAS a crear un método que permita que vuestros procesos funcionen de la forma más óptima para ganar tiempo y espacio en disco, los dos elementos más importantes cuando manejamos grandes volúmenes de datos. ...

9 de junio de 2010 · rvaquerizo

Ejemplo de uso del paquete XML de R

Quería poneros unos apuntes sobre el paquete XML de R. El caso es que, entre todos los fregados en los que ando metido, he retomado el tema de leer páginas web con R. Y con esto he llegado a la sentencia install.packages("XML") y, con la fiebre mundialista, estoy en lo siguiente: library(XML) pag <- "http://es.wikipedia.org/wiki/Anexo:Finales_de_la_Copa_Mundial_de_F%C3%BAtbol" # readHTMLTable devuelve una lista de tablas tablas <- readHTMLTable(pag) pagina <- data.frame(tablas[[1]]) ganador <- data.frame(substr(pagina$Ganador, 3, nchar(as.character(pagina$Ganador)))) names(ganador) <- "primero" segundo <- data.frame(substr(pagina$Segundo.puesto, 3, nchar(as.character(pagina$Segundo.puesto)))) names(segundo) <- "segundo" Muy sencillo: leemos la Wikipedia y nos creamos un objeto con las finales de todos los mundiales. Me voy a centrar en los finalistas. Parece que tengo algún problema con las tildes y con nulos. Grafiquemos un poco: ...

8 de junio de 2010 · rvaquerizo

Agregador de noticias de R en español

En el blog hermano de Carlos Gil han puesto en marcha uno de los proyectos más interesantes que han pasado por la blogosfera últimamente: un agregador de noticias de R en español. Un proyecto similar a R-bloggers pero en lengua hispana. Por supuesto, este blog es uno de los participantes. El motor lo ha hecho íntegramente Carlos (con sus deditos y Python) y publica vía RSS cuando encuentra la etiqueta R. Desde aquí os invito a que deis de alta vuestros blogs y así podamos crear una web de referencia en español sobre R a la altura de R-bloggers. Saludos.

7 de junio de 2010 · rvaquerizo