Trucos SAS. Eliminación de espacios en blanco

Truco SAS práctico para aquellos que os estáis iniciando en el uso de las funciones de texto con SAS. Se trata de eliminar aquellos espacios en blanco que no son necesarios en una variable. Quería plantearos las posibles soluciones que se me han ido ocurriendo. Algunas de ellas no son eficientes pero es necesario que dispongáis de todas. En la línea habitual planteo un ejemplo para que lo ejecutéis y así podáis analizar los resultados: ...

10 de enero de 2012 · rvaquerizo

Trucos Excel. Tranformar un caracter a fecha

Si tenemos en Excel celdas con valores en la forma: - viernes 1 de enero de 2010 - sábado 2 de enero de 2010 - domingo 3 de enero de 2010 - … y deseamos transformarlo en fecha podemos hacer lo siguiente: =TEXTO(IZQUIERDA(EXTRAE(A2;ENCONTRAR(" ";A2;1)+1;30);2) &EXTRAE(EXTRAE(A2;ENCONTRAR(" ";A2;1)+1;30);6;4)&DERECHA(EXTRAE(A2;ENCONTRAR(" ";A2;1)+1;30);4 );"dd/mm/aaaa")*1 ¡Toma función! Vamos a contar paso por paso como funciona: necesitamos 1 de enero de 2010 de viernes 1 de enero de 2010 , supongamos que está en la celda A2. Eso lo conseguimos encontrando el primer espacio en blanco con la función ENCONTRAR(" ";A2;1) en este caso el 6, luego debemos empezar por el siguiente, por eso debemos sumar 1. Con EXTRAE(A2;ENCONTRAR(" ";A2;1)+1;30) nos quedamos con 1 de enero de 2010 ese texto tiene que pasar a otro texto con el formato dd/mm/aaaa. El día lo cogemos con IZQUIERDA(EXTRAE(A2;ENCONTRAR(" ";A2;1)+1;30);2) el mes es más complejo porque queda entremedias EXTRAE(EXTRAE(A2;ENCONTRAR(" ";A2;1)+1;30);6;4) y el año se hace de forma análoga al día DERECHA(EXTRAE(A2;ENCONTRAR(" ";A2;1)+1;30);4 ) y hemos creado el texto 1 ener2010 por último empleamos la función TEXTO para transformar esa cadena de caracteres a otra cadena de caracteres con el formato deseado dd/mm/aaaa y todo ello lo multiplicamos por 1 para crear el número 40179 al que podemos dar el formato de fecha que queramos y con el que podemos realizar operaciones Espero que esta fórmula os sirva y os ayude en vuestro trabajo con Excel cuando tengáis que cambiar textos a fechas (o al contrario). También podemos emplear la función FECHANUMERO pero esa me la guardo para otro día.

13 de marzo de 2011 · rvaquerizo

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: ```sas 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 ”: ```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.

1 de febrero de 2011 · rvaquerizo

Macros SAS. Calular la longitud de un número.

Ha llegado hoy una búsqueda que no ha permanecido en AyD ni 20 segundos. Quería calcular la longitud de un número con SAS. Como yo estoy aquí para compartir mis conocimientos y hay una persona que los necesita aquí está esta macro que espero o sea de utilidad: ```sas %macro largo(num); length(compress(put(&num.,32.))) %mend; Esta macro recibe un parámetro que ha de ser un número y lo que hace es transformarlo a carácter comprimido y calcular su longitud. Veamos ejemplos de uso: ...

27 de octubre de 2009 · rvaquerizo

Truco SAS. Función para contar caracteres

Si deseamos contar cuantas veces aparece un caracter dentro de una cadena en SAS nos encontramos que no existe ninguna función de texto en SAS. Para ello podemos utilizar otras funciones de texto en SAS. La idea es determinar la length de la cadena con el caracter en cuestión y restarle la length de la cadena sin el caracter. Es decir, ¿cuántas A hay en la frase “Menuda crisis financiera”? Longitud con A y sin espacios= 22, longitud sin A y sin espacios=19, luego 22-19=3 aes. Para este ejemplo no se tienen en cuenta los espacios en blanco, veamos el programa en SAS: ...

27 de octubre de 2008 · rvaquerizo