Trucos

Truco (malo) de R. Leer datos desde Excel

Tenemos unos datos en Excel y deseamos crear un objeto en R con ellos. La forma más sencilla es seleccionar y copiar los datos y ejecutar el siguiente código:

datos = read.delim("clipboard")

str(datos)

Muy sencillo, pero necesitaba «fustigarme». Si deseamos llevar los datos de R a Excel (el camino contrario) hacemos:

write.table(datos,"clipboard", sep="\t",row.names=FALSE)

Igual de sencillo. No hagáis como yo, no olvidéis este código. Saludos.

Truco Excel. Identificar el color de una celda

Para identificar el color de una celda en Excel podemos emplear Interior.Color del siguiente modo:

Sub Macro1()

For i = 3 To 6

dato = Cells(i, 2).Interior.Color
Cells(i, 3) = dato
Next i

End Sub

No funciona con formatos condicionales, si deseáis utilizar los colores de los formatos condicionales habréis de idear cómo hacerlo o bien esperar a que tenga tiempo a redactar como lo hago yo, pero que nadie se espere un programa en VB brillante, que no fui capaz de hacerlo. Saludos.

Truco Excel. Agrupar valores en un campo de una tabla dinámica

Si necesitamos agrupar un campo de una tabla dinámica tenemos dos opciones. Por un lado agrupar manualmente o bien crear intervalos de determinado tamaño. Para agrupar datos manualmente seleccionamos los elementos que deseamos agrupar en la tabla dinámica y pulsamos botón derecho agrupar:

Inmediatamente se nos crea un nuevo campo en la tabla dinámica que por sufijo tendrá un 2 y aparece un nuevo grupo que por defecto se llamará Grupo 1. Podemos cambiar el nombre, en este caso agrupamos trimestres o cuatrimestres:

Truco (muy fácil) de SAS. Leer un rango de una hoja Excel

Cuando tenemos rangos en nuestras hojas Excel y deseamos que se conviertan en tabla SAS podemos emplear la sentencia libname de este modo:

libname selec "C:\TEMP\rangos.xlsx";
data rango;
set selec.rango;
run;
libname selec clear;

Asisgnamos la librería al archivo Excel que deseamos leer y tan simple como referenciar al rango en nuestro paso data. Se interactúa fácil entre Excel y SAS. Saludos.

Truco SAS. Retrasar una ejecución con SLEEP

El método más sencillo para ejecutar SAS a una hora determinada es el empleo de la función SLEEP:

data _null_;
    momento = "03OCT2013:10:07"dt;
    duerme_hasta = sleep(momento - datetime(), 1);
run;

Un truco muy sencillo que da respuesta a una duda planteada en el blog. Pensé que ya existía esta entrada. Saludos.

Truco SAS. Elminar retornos de carro o saltos de línea engorrosos

Cuando tenemos saltos de línea o retornos de carro que nos dificultan las lecturas de ficheros de texto podemos leer caracter a caracter con SAS y elminar esos caracteres incómodos.

data _null_;
length char 1.;
infile 'C:\fichero_de_entrada.TXT'  lrecl=1 recfm=F missover dsd;
file 'C:\fichero_de_entrada_depurado.TXT'  lrecl=1 recfm=F;
input charASCII.;
if rank(char) = 13 /*SI ES WIN PONER EL 13*/ then char= "";
put char;
run;

Recomiendo no sobreescribir el fichero de texto y crear otro «depurado». Tendréis este problema cuando vuestro programa SAS os lea menos observaciones de las esperadas. Esto suele pasar cuando trabajamos con archivos de distintos sistemas operativos, como por ejemplo cuando leemos un archivo de texto unix con una máquina windows. Saludo.

Truco SAS. Unir todas las hojas de un Excel en una

Empleamos LIBNAME con SAS para acceder a Excel. Es un truco con limitaciones y que se tiene que ir mejorando a futuro. Se trata de leer todas las hojas de un libro Excel y pegarlas horizontalmente en otra hoja QUE NO DEBE EXISTIR PREVIAMENTE. La macro es la siguiente, no se acompaña de un ejemplo de uso debido a su sencillez:

%macro une_excel(ubicacion, nombre_union);
libname selec &ubicacion.

proc sql noprint;
select "SELEC.'"||memname||"'n" into:lista_excel separated by " "
from dictionary.members
where libname = "SELEC";
quit;

data SELEC.&nombre_union.;
set &lista_excel.;
run;

libname selec clear;
%mend;

%une_excel("C:\TEMP\unir_excel2\unidos.xlsx", todas);

Creamos una librería SAS a un libro Excel determinado. Leemos con DICTIONARY las hojas que tiene dicho libro y las unimos en una hoja de ese libro al que será la última. Como buena costumbre el desasignamos la librería con LIBNAME CLEAR. Como se ha indicado antes tiene limitaciones, por ejemplo no debe existir la hoja final con la unión. Pero es un buen ejemplo de uso de LIBNAME + EXCEL y DISTIONARY. Saludos.

Truco SAS. SYSECHO para controlar las ejecuciones en Enterprise Guide

Un truco SAS que envió una lectora del blog. Se emplea en Enterprise Guide y nos permite conocer en que punto del código está nuestra ejecución. En Enterprise Guide si no somos muy ordenados con nuestros códigos podemos tener algún problema, en la pantalla de estado de las tareas tenemos un nombre de la tarea un estado, la posición en cola el servidor desde el que se ejecuta y el tipo de servidor para los momentos en los que trabajamos con múltiples servidores. Con _sysecho _lo que hacemos es ver el estado de la tarea. Ejemplo práctico a ejecutar:

Mapa Excel por distritos de Barcelona

De nuevo agradecer a Manel Pla su colaboración con la bitácora. En esta ocasión pone a nuestra disposición un mapa de Barcelona por barrios que podéis descargaros en el siguiente enlace:

Relación de distritos de Barcelona

Sigue la misma línea de todos los mapas para Excel colgados en esta web así que no es muy difícil su manejo. Pero si teneís dudas o problemas contactad. Agradecer a Manel su colaboración con este gran mapa de Barcelona en Excel. Saludos.

Trucos SAS. Ordenar las variables de un dataset

Para cambiar el orden de las variables en un conjunto de datos SAS hemos de emplear RETAIN antes de SET. Este truco es la respuesta a una duda planteada en el blog. Un vistazo rápido al ejemplo entenderemos la sintaxis:

data datos;
do i=1 to 20;
importe1 = ranuni(8)*100;
importe2 = ranuni(3)*100;
importe3 = ranuni(1)*100;
id = put(i,z5.);
output;
end;
drop i;
run;

data datos_reordenados;
retain id importe3;
set datos;
run;

Como vemos RETAIN nos permite reordenar las variables del dataset independientemente del tipo de variable que estemos manejando. También podríamos emplear algún otro tipo de sentencia, pero es recomendable usar RETAIN, como vemos no es necesario poner el total de las variables. Saludos.

Manual para realizar mapas en Excel con archivos SVG

Nueva documentación que nos ha mandado nuestro compañero Manel Pla. Se trata de un manual para la creación de mapas en Excel con el método del que ya hablamos una vez en el blog. El resultado del trabajo de Manel ya lo conocéis. A continuación tenéis el enlace con la descarga del manual:

[ Manual de mapas en color para Excel](/images/2013/05/CREACIO MAPA VALLES EN COLORS.pdf)

Con colaboración si que se puede dotar de más contenido al blog. Muchas gracias Manel.

Mapa de Catalunya en Excel por comarcas

Nuevo mapa en Excel a la colección de esta web. Se trata de un mapa de Cataluña por comarcas que funciona a las mil maravillas y que nos ha pasado nuestro lector Manel Pla. Hay que reconocer que es un trabajo excelente, muy trabajado y sencillo de utilizar, incluso podéis pintar distintas medidas. Seguro será de mucha utilidad.

Además de este gráfico Manel también nos ha pasado un mapa de Barcelona que colgaré en los próximos días. La verdad es que con estos lectores da gusto tener el blog.

Mapa de Catalunya en Excel por comarcas

Nuevo mapa en Excel a la colección de esta web. Se trata de un mapa de Cataluña por comarcas que funciona a las mil maravillas y que nos ha pasado nuestro lector Manel Pla. Hay que reconocer que es un trabajo excelente, muy trabajado y sencillo de utilizar, incluso podéis pintar distintas medidas. Seguro será de mucha utilidad.

Además de este gráfico Manel también nos ha pasado un mapa de Barcelona que colgaré en los próximos días. La verdad es que con estos lectores da gusto tener el blog.