2013-07-23

Código y datos para las ciencias sociales- Parte 5

En las entradas anteriores vimos una introducción del manual Code and Data for the Social Sciences: A Practitioner’s Guide y los capítulos dedicados a automatizar y control de versionesdirectorios y claves. Finalizamos esta serie de artículos con los capítulos dedicados a la simplificación y la documentación.

Capítulo 6- Simplificación
  1. Simplifica para eliminar redundancias
  2. Simplifica para mejorar la claridad
  3. En caso contrario, no simplifiques.
La simplificación puede llevarse demasiado lejos. Si una operación que sólo necesita ser ejecutada una vez es fácil de leer, no sería recomendable. Simplificar sin propósito puede conducir a emplear mucho tiempo en casos que  nunca aparecerán en tu trabajo. La simplificación no afecta solamente al código, es relevante en cualquier momento en el que estés repitiendo una operación.

Capítulo 7- Documentación
  1. No escribas documentación que no mantendrás
  2. El código debería autodocumentarse
Cada vez que tienes más de una representación de la misma información, corres el riesgo de que alguno de las dos entre algún día en conflicto. En el mejor caso, necesitarás trabajar para desentrañar la confusión. En el peor caso, tus resultados serán erróneos o inconsistentes internamente.

El problema de consistencia interna es especialmente grave en el caso de documentación (comentarios, notas, léemes, etc) porque no tienes que mantenerla actualizada para que funcione el código.  Es tentador hacer mejoras del código sin actualizar los comentarios del mismo en paralelo.

Cuando sea posible, debes de escribir tu código para que se autodocumente. Nombra las variables y la estructura del código para guiar al lector a lo largo de las operaciones. Ni incluso los mejores comentarios pueden desenmarañar un código confuso. Al igual que la simplificación, estos principios no se aplican exclusivamente al código sino que subyacen en varios de los capítulos anteriores.

Los comentarios pueden ser usados para aclarar algo que es correcto pero que a primera vista puede parecer erróneo. También para prevenir comportamientos no deseados. Sin embargo, si hay alguna acción que realmente quieres evitar, comentarios como "No hagas esto nunca", no son la manera de hacerlo. Escribe tu código de manera que esas acciones no se puedan ejecutar nunca.

Parte 1: Introducción
Parte 2: Automatizar y control de versiones
Parte 3: Directorios
Parte 4: Claves
Parte 5: Simplificación y documentación

2013-07-19

Google Sets en las hojas de cálculo de Google Drive

Google Sets es una característica de las hojas de cálculo que proporciona Google Drive y nos permite generar listas de elementos y búsquedas relacionadas. En cualquier hoja, tan sólo tenemos que introducir dos ejemplos de ítems relacionados, seleccionamos las dos celdas (en esta caso 6 pues creamos 3 listas a la vez), presionamos CTRL mientras hacemos clic sobre el cuadrito azul y arrastramos hacia abajo.


Los tipos de lista que se pueden generar son prácticamente ilimitados: búsquedas relacionadas, objetos, ingredientes, provincias, marcas de productos, autores, razas de perros, superhéroes, canciones de un grupo de música etc.

También se puede usar Google Sets horizontalmente (listas en filas en lugar de en columnas). Y, si deseamos generar listas en otros idiomas, cambiamos al idioma deseado en la configuración de Google Drive.

2013-07-16

Convertir horas en un número decimal en Excel

En Excel, es común que calculemos el tiempo transcurrido entre dos fechas u horarios. Si queremos convertir el formato de la hora estándar (horas: minutos: segundos) en formato decimal, multiplicamos la celda correspondiente por 24.

Ejemplo:

En la celda A1 tenemos 10:23:46 en formato hh:mm:ss.
En B1 tecleamos =A1*24 y daría como resultado en formato decimal: 10,396 (10:30:00 serían 10,5)

Para transformar en minutos =A1*24*60 y en segundos =A1*24*60*60. Para la transformación inversa bastaría con dividir, en su caso, entre horas (24), minutos (1440) o segundos (86400) el número en formato decimal.

Merece la pena recordar que, en el caso de que no fuera el correcto,  hay que dar el formato adecuado a las celdas.

1. Mediante fórmulas:
=TEXTO(B1/24;"hh:mm:ss")'Formato hora
=TEXTO(A1*24;"00,000")  'Formato decimal

2. Presiona CTRL+1 para mostrar el cuadro de diálogo Formato de celdas y aplicar el formato correspondiente (Número u Hora ).


2013-07-05

Configurar todas las páginas de un libro de Excel

Para configurar manualmente la página hacemos clic sobre el Botón de OfficeImprimir y, a continuación, clic en Vista preliminar. O bien CTRL+F2. A continuación, hacemos clic en Configurar página.


En VBA podemos configurar los atributos de la página mediante el objeto PageSetup. Es particularmente útil cuando queremos aplicar una misma configuración a todas la hojas de un libro, evitando repetir el procedimiento manualmente para cada una de las hojas.

Usamos la instrucción With para modificar sencilla y rápidamente varias propiedades simultáneamente. En el ejemplo, orientamos todas las hojas horizontalmente y ajustamos las páginas a 1 página de ancho por 1 de alto. En este caso, es necesario establecer la propiedad Zoom como False, pues si es True, se omite la propiedad FitToPagesTall y FitToPagesWide, y no se ajustaría la página correctamente.

Sub ConfigurarTodasPaginas()
Application.ScreenUpdating = False
    Dim i As Single
    For i = 1 To Worksheets.Count
            With Worksheets(i).PageSetup
            .Zoom = False 
            .FitToPagesTall = 1
            .FitToPagesWide = 1
            .Orientation = xlLandscape
            End With
    Next i
Application.ScreenUpdating = True
End Sub

Puedes alterar parte del código anterior para modificar aquellas propiedades de la configuración de la página que desees:

    With Worksheets(i).PageSetup
    [Propiedades que desees modificar]
    End With

Para acceder a todas las propiedades de configuración de la página en el editor de Visual Basic (VBE) abrimos el examinador de objetos (1), buscamos la clase pagesetup (2) y examinamos los miembros (3).




2013-07-03

Código y datos para las ciencias sociales- Parte 4

En las entradas anteriores vimos una introducción del manual Code and Data for the Social Sciences: A Practitioner’s Guide y los capítulos dedicados a automatizar y control de versiones y a directorios. Continuamos con el capítulo dedicado a las claves.

Capítulo 5- Claves
  1. Guarda los datos limpiados en tablas con únicos y con claves
  2. Mantén los datos normalizados a lo largo de tu proceso tan lejos como puedas.
Nos muestran un ejemplo de una tabla sin normalizar, con valores nulos y probablemente erróneos. Plantean que debe de haber una mejor manera de hacerlo, porque grandes organizaciones, como instituciones financieras, aseguradoras, o comercios minoristas, tienen que gestionar datos más complejos en tiempo real, con enormes consecuencias si hubiera errores.  Hace tiempo, expertos como Edgar F. Codd establecieron un principio fundamental del diseño de base de datos: la estructura física de una base de datos debe de comunicar su estructura lógica. La base de datos relacional carece de ambigüedad, se autodocumenta.

Los datos son almacenados en matrices rectangulares llamadas tablas. En las tablas, las filas son elementos o registros y las columnas son variables o atributos. Cada tabla tiene una clave. Una clave es una variable, o grupo de variables, que identifica únicamente los elementos de una tabla. A las variables que conforman la clave no les pueden faltar datos, y el valor de una clave nunca puede estar duplicado en las filas de una tabla.

Cada variable en una tabla es un atributo de los elementos de una tabla. Una clave externa es una clave de otra tabla de la base de datos. Por ejemplo, en una tabla de países el país es la clave externa, a cada región le corresponde un elemento de la tabla países. Las claves externas obedecen las mismas normas que el resto de variables.

Los datos almacenados siguiendo la estructura anterior se consideran normalizados. Almacenar datos normalizados significa que los datos serán entendidos fácilmente y que será más difícil cometer errores costosos.

Sin embargo, la mayoría de programas estadísticos no ejecutaran regresiones sobre una base de datos relacional. Para realizar el análisis es necesario unir tablas para obtener una única matriz rectangular.

El procedimiento tiene tres pasos:
  1. Guarda los datos brutos en ficheros normalizados que preserven la información en la fuente original de los datos. Esto es necesario porque probablemente necesitarás usar esos datos en formas que actualmente no eres capaz de anticipar.
  2. Construye otro grupo de ficheros normalizados que incluyan la transformación de las variables originales que necesitas para tu análisis.
  3. Une las tablas en tu base de datos para formar una matriz rectangular sobre la cual estimarás tu modelo. En esta etapa aún debes tener datos únicos, con claves, pero probablemente no estén normalizados.
Parte 1: Introducción
Parte 2: Automatizar y control de versiones
Parte 3: Directorios
Parte 4: Claves
Parte 5: Simplificación y documentación

Entradas relacionadas: Normalizar tablas en Excel con el asistente para tablas dinámicas

2013-07-01

Omitir todos los errores de una hoja

Excel utiliza reglas para determinar automáticamente si hay errores en las fórmulas. Cuando detecta un error, muestra in triángulo verde en la esquina superior izquierda de la celda (si está activada la opción Habilitar comprobación de errores en segundo plano)

Sin embargo, en ocasiones no deseamos que nos siga marcando posibles errores que realmente no lo son. Por ejemplo, cuando detecta fórmulas incoherentes con otras fórmulas en la región, y sabemos que no son errores.

Podemos cambiar los errores comunes que comprobará Excel. Otra opción es omitir los errores encontrados en la hoja. En lugar de omitir los errores de uno en uno, especialmente cuando son muchas celdas, podemos hacer lo siguiente:

1. Selecciona una celda que contenga el error.
2. Presiona CTRL + E una vez para seleccionar la región actual (una segunda vez para seleccionar todas las celdas de la hoja).

3. Haz clic en el botón Comprobación de erroresy elige Omitir error. 


Nube de datos