Trucos Excel (y SAS). Complemento para cambiar la configuración regional

Pasar salidas de SAS a Excel trae de cabeza a muchos usuarios de SAS. A este blog llegan un gran número de entradas desde Google con términos del tipo importar datos de sas a Excel, conectar SAS a excel, cambiar la configuración regional con macros,… Hoy quería ayudaros un poco con esta problemática. Bueno, en realidad os va a ayudar el compañero Salva que hace unos meses me pasó un complemento de Excel tremendamente útil para aquellos que movemos datos entre SAS y Excel. Para trabajar con este complemento sólo tenéis que descargarlo en este enlace y activar el complemento en Opciones de Excel Administrar complementos. Una vez hayamos hecho esto tendremos en nuestra pestaña complementos lo siguiente: ...

25 de noviembre de 2011 · rvaquerizo

Trucos SAS. Trasponer con SQL para torpes

Trasponer datos con SAS es un tema que genera un gran número de consultas en Google, por lo tanto genera un gran número de visitas a este blog. Ya hay un monográfico al respecto pero hoy quería volver a contar la trasposición de datos con SQL y SAS pero a un nivel más bajo para que sea lo más sencillo posible. En el ejemplo partimos de una tabla con 3 variables, un id_cliente, un campo tipo y un campo precio. Cada tipo tiene un precio y necesitamos que nuestro dataset tenga un registro por id_cliente y 3 precios, uno por cada tipo. El ejemplo en código SAS: ...

21 de noviembre de 2011 · rvaquerizo

Trucos SAS. Operaciones con tablas de dimensiones con SAS

Algunos llaman a las tablas de dimensiones tablas de lookup, yo me niego. Con SAS ya hemos visto como crear cruces de tablas de dimensiones con tablas de hechos a través de formatos, bajo mi punto de vista el método más eficiente. Pero hoy quería traeros un ejemplo de cruce de tabla pequeña con tabla grande a través de arrays multidimensionales con SAS. Se trata de guardar los valores de la tabla pequeña en un array temporal multidimensional cuando leemos la tabla grande. Para ilustrar esta tarea he preparado un ejemplo: ...

25 de octubre de 2011 · rvaquerizo

Trucos Excel. Unir varios Excel en uno

Tenía pendiente revisar una de las entradas más visitadas del blog. Trata la problemática de unir varios Excel en uno sólo. En el caso concreto servía para unir varios Excel generados por SAS a través de una macro en SAS. En la entrada de hoy quiero trabajar con un ejemplo que os podéis descargar aquí en formato rar. De los archivos que comparto el más interesante el que llamamos unir_varios_excel.xlsm se trata de un archivo Excel para macros que contiene un par de macros más que interesantes. Un pantallazo de este libro de Excel: ...

21 de septiembre de 2011 · rvaquerizo

Trucos R. De string a data.frame de palabras

Manejo de textos con R en este truco. Partimos de un vector de string y deseamos dividir ese string en palabras y posteriormente crear un data frame de una sola columna con tantos elementos como palabras tenga nuestro vector de cadenas de texto. Es decir, vamos a transformar un texto en una tabla de palabras. Veamos una posible situación: ```r #Este es nuestro elemento inicial texto=c("Este es el elemento ","que me gustaría"," poner en una tabla") #Tenemos que generar un data frame con con las palabras #que componen este vector texto_split = strsplit(texto, split=" ") texto_columnas = data.frame(unlist(texto_split)) Un código sencillo donde destaca el uso de la función strsplit para crear una lista de palabras con los elementos del vector inicial. Es importante el uso de unlist para realizar el proceso correctamente. Con estas 3 líneas podemos hacer cosas muy interesantes los lectores habituales ya sabrán por donde voy y como obtener los debates del Congreso de los Diputados. Saludos.

9 de agosto de 2011 · rvaquerizo

Trucos SAS. Más usos de INFILE y PIPE directorios en tablas SAS

Puede interesarnos tener directorios y subdirectorios en tablas SAS. Es decir, tabular el resultado de un lm en Unix o poner en una tabla el resultado de un dir de MS DOS / Windows. Ya tengo ejemplos publicados a este respecto: Truco SAS. Uso de FILENAME y PIPE Macros SAS: Asignar permisos en Unix Pero no está mal volver a poner un truco para analizar las posibilidades del INFILE + PIPE. Vamos a hacer un DIR de todo nuestro C:\ y sacar los archivos de mayor tamaño. ...

15 de julio de 2011 · rvaquerizo

Trucos Excel. Mapa de España por provincias (mejores versiones)

Nuestro lector Jose Antonio tiene una nueva versión del mapa de España por provincias con Excel. Mejores y más comprensibles macros, el problema de León y las Canarias solventados y aparecen Ceuta y Melilla. En palabras del autor tenemos: El libro contiene varios botones: uno para agrupartodas las formas en una sola y poder ampliar el mapa y otros tres para cambiar los colores, dos de ello en función de tramos de una variable (población de las provincias y población por provincias de edad de 0 a 4 años, datos obtenidos del INE padrón 2010), el último para poner todas las provincias en blanco). He creado un mapa nuevo porque el que tienes en la página presenta el problema de León que está en dos formas y es mejor una forma para manejarla con código. No me he preocupado mucho por el tema de la estética, la idea de este libro es presentar varias formas de manejar un mapa por código. Aparecen representadas las ciudades autónomas de Ceuta y Melilla pero si se mantienen las escalas apenas se ven los colores de relleno. Baleares, Las Palmas y Santa Cruz de Tenerife aparecen como grupos porque en la estadística del INE vienen con esta agrupación pero si se dispone de datos a nivel de cada isla se pueden deshacer los grupos. ...

3 de julio de 2011 · rvaquerizo

Trucos SAS. La ventana LOG vacía o limpia

Duda que me trasmitieron hace tiempo. Necesito que no se genere salida en el log porque se llena y mi proceso da problemas. Con el PROC PRINTTO podemos hacer que nuestros procesos no generen salida en la ventana log. Para ello sólo tenemos que utilizar el siguiente código: proc printto log='null'; quit; Si deseamos volver a tener resultados en la ventana log sólo tenemos que hacer: proc printto log=log; quit; Con el PROC PRINTTO no sólo podemos dirigir el log a un fichero, también podemos dirigir el OUTPUT con la opción PRINT. Tenéis muchos ejemplos en la red acerca de este tema. Para limpiar el log también podemos emplear la instrucción DM: ...

28 de junio de 2011 · rvaquerizo

Trucos R. Llevar a SAS las reglas de un `árbol de decisión`

Vuelvo hoy con el uso de rpart para la creación de árboles de decisión con R. Pero hoy, además de realizar un modelo de árbol con R quiero presentaros una función que nos permite guardar las reglas generadas con nuestro modelo en un fichero de texto para su posterior utilización con SAS. Retomamos un ejemplo visto con anterioridad en bitácora con ligeras modificaciones: #Inventamos un objeto para realizar el modelo #En una cartera de clientes nuestro modelo tiene que identificar #cuales contratan un PVI # clientes=20000 saldo_vista=runif(clientes,0,1)*10000 saldo_ppi=(runif(clientes,0.1,0.2)*rpois(clientes,1))*100000 saldo_fondos=(runif(clientes,0.1,0.9)*(rpois(clientes,1)-1>0))*100000 edad=rpois(clientes,60) datos_ini<-data.frame(cbind(saldo_vista,saldo_ppi,saldo_fondos,edad)) datos_inisaldo_ppi=(edad<=68)*datos_inisaldo_ppi #Creamos la variable objetivo a partir de un potencial datos_inipotencial=runif(1,0,1)+ (log(edad)/(log(68))/100) + runif(1,0,0.001)*(saldo_vista>5000)+ runif(1,0,0.001)*(saldo_fondos>10000)+ runif(1,0,0.007)*(saldo_ppi>10000)- runif(1,0,0.2) datos_inipvi=as.factor((datos_inipotencial>=quantile(datos_inipotencial, 0.90))*1) # #Empleamos rpart para la realización del modelo # library(rpart) arbol= rpart(as.factor(pvi)~edad+saldo_ppi+saldo_fondos, data=datos_ini,method="anova", control=rpart.control(minsplit=30, cp=0.0008) ) Tenemos un objeto rpart llamado arbol. En este punto necesitamos disponer de las reglas generadas por el modelo para SAS, donde el módulo específico para poder realizar determinados modelos tiene un precio muy alto. Buscando en Google encontraremos este link. En él tenemos una genial función de R list.rules.rpart que nos permite identificar las reglas que ha generado el modelo. Modificamos ligeramente esta función para que nos sirva en nuestros propósitos: ...

10 de junio de 2011 · rvaquerizo

Trucos Excel. Mapa de España por provincias (mejorado)

Un nuevo mapa de España mejorado para Excel. Sobre la base del mapa ya publicado en esta bitácora un lector ha realizado una espectacular mejora. El compañero Daniel resume sus mejoras como: Cambio en la provincia de León Ponerle mar Añadir la posibilidad de que se pueda rellenar por provincias (ahora se rellena vía la pestaña adjunta, no directamente sobre la primera) Le he quitado también la cabecera y cambiado Canarias de puesto (por temas estéticos de la presentación que estoy preparando) El resultado lo tenéis en este link. Y la verdad es que mejora mucho la primera versión. Ahora necesitamos que alguien nos plantee una combinación de 4 o 5 colores para este tipo de mapas, algo así como una escala de azules, escala de grises,… ...

9 de junio de 2011 · rvaquerizo