Calendario de Solvencia II (o Solvencia ¡!)

El 2 de octubre tuvimos propuesta de Directiva Quick-fix II con las fechas de entrada en funcionamiento de Solvencia II. Esto se votó a toda prisa el viernes 21 de noviembre y, a grandes rasgos, se decide que sea el 01/01/2016 el gran momento. Ya hay texto, hay directrices de EIOPA y parece que todo está en marcha. Ya veremos qué pasa con las garantías a largo plazo (qué grande el seguro de decesos). A ver si ya termina de cerrarse el desarrollo normativo. Parece que Solvencia II va a resolverse antes que el Baremo de Autos. Saludos.

16 de diciembre de 2013 · rvaquerizo

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.

3 de diciembre de 2013 · rvaquerizo

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() Dim i As Long Dim dato As Long For i = 3 To 6 dato = Cells(i, 2).Interior.Color Cells(i, 3).Value = 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 cómo lo hago yo; pero que nadie se espere un programa en Visual Basic brillante, que no fui capaz de hacerlo. Saludos.

27 de noviembre de 2013 · rvaquerizo

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: ...

5 de noviembre de 2013 · rvaquerizo

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; Asignamos 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.

10 de octubre de 2013 · rvaquerizo

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.

3 de octubre de 2013 · rvaquerizo

Truco SAS. Eliminar 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 carácter a carácter con SAS y eliminar 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 char $char1.; if rank(char) = 13 /* SI ES WINDOWS PONER EL 13 */ then char = " "; put char $char1.; run; Recomiendo no sobrescribir 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. Saludos.

30 de septiembre de 2013 · rvaquerizo

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 verticalmente 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, que será la última. Como buena costumbre, 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 DICTIONARY. Saludos.

20 de septiembre de 2013 · rvaquerizo

Dividir en palabras un texto con SAS

Una duda que planteó una lectora del blog acerca de separar una cadena de caracteres separados por comas y crear observaciones en otra variable: ¡Hola! He buscado por toda la página, necesito ayuda urgente. Mi problema es el siguiente: Necesito separar una cadena de texto en una fila en varias filas, por ejemplo: cadena1,cadena2,cadena3 en: cadena1 cadena2 cadena3 Para encontrar la , utilizo scan, aunque podría ocupar anypunct para que encuentre la primera ,, luego la segunda ,, etc., y cortar con substr, length… Pero bueno, ya que tengo un método de separar el texto de la fila, ¿cómo hago para que cada palabra esté en una nueva fila? Ojalá me hayan entendido y me den una idea de cómo hacer eso en un PROC SQL, con una macro o como sea; ¡solo una pequeña orientación me serviría mucho, gracias! ...

12 de septiembre de 2013 · rvaquerizo

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 qué 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: ...

11 de septiembre de 2013 · rvaquerizo