2014-12-31

Las 10 entradas de Excel más visitadas en 2014

Title Termina el año, vamos a ver las 10 entradas de Ms Excel más visitadas en 2014 y los 10 primeros países por número de visitas:

Entradas

  1. Generar números aleatorios entre dos valores con decimales
  2. Convertir horas en un número decimal en Excel
  3. Omitir todos los errores de una hoja
  4. Normalizar tablas en Excel con el asistente para tablas dinámicas
  5. Buscar y reemplazar cadenas de texto con VBA
  6. Mostrar u ocultar formas en Excel mediante VBA
  7. Importar ficheros CSV en Excel mediante VBA
  8. Cambiar origen de datos de múltiples tablas dinámicas con VBA
  9. Insertar una imagen GIF en Ms Excel
  10. Números aleatorios de una lista o rango de opciones

Países

Entradas relacionadas

2014-12-27

Las 10 entradas de Access más visitadas en 2014

Title Como se acerca el final del año, vamos a ver las 10 entradas de Ms Access más visitadas en 2014 y los 10 primeros países por número de visitas:

Entradas

  1. Cuadros combinados en cascada en Ms Access
  2. Porcentaje del total de la columna en una consulta de Access
  3. Generar números aleatorios entre dos valores en Ms Access
  4. Convertir texto en número conservando los decimales en Access
  5. Reemplazar carácter en un fichero de texto con VBA en Access
  6. Consulta para generar una muestra aleatoria en Ms Access
  7. Generar campo autonumérico aleatoriamente en Ms Access
  8. Mensaje de error "No se pudo eliminar nada en las tablas especificadas"
  9. Importar una especificación de importación/exportación en Ms Access: dos métodos
  10. Guardar macro como código VBA en Ms Access

Países

Entradas relacionadas

2014-12-24

Las 10 entradas de R más visitadas en 2014

Title Como se acerca el final del año, vamos a ver las 10 entradas de R más visitadas en 2014 y los 10 primeros países por número de visitas:

Entradas

  1. Medir el tiempo de ejecución de procesos en R
  2. Introducción al paquete igraph para R
  3. Usando RStudio por primera vez
  4. Instalación de R y RStudio
  5. Editando y ejecutando código en RStudio
  6. Sucesión de Fibonacci en R
  7. Calcular el trayecto recomendado entre dos estaciones con igraph
  8. Superponer gráficos en R: distribución normal
  9. Directorio y entorno de trabajo en RStudio
  10. Test de normalidad Shapiro–Wilk en R

Países

Entradas relacionadas

2014-12-20

Añadir una descripción a las funciones definidas por el usuario en Excel

Title En esta entrada explicaremos la manera de añadir una descripción a una función creada por el usuario.

Problema

Por defecto, cuando creamos una función en un módulo de Excel, no aparecerá una descripción de la misma en el cuadro de diálogo de Insertar función: MAYÚS+F3

Tampoco aparecerá asignada a ninguna de las categorías de funciones de Excel: Financieras, Fecha y hora, Matemáticas y trigonométricas, etc.

Añadir descripción

  1. Abrimos el Editor de Microsoft Visual Basic: Alt+F11
  2. Abrimos el Examinador de objetos (Object Browser): F2
  3. En el cuadro Proyecto/Biblioteca (Project/Library), el cuadro superior izquierdo, seleccionados VBAProject
  4. En el cuadro Clases (Classes), clic en el que modulo que contiene la función.
  5. En el cuadro Miembros de (Members of), clic con el botón secundario del ratón sobre la función y seleccionamos Propiedades.

Alternativa: grabando macro

  1. En el cuadro de diálogo de grabar Macro, escribimos la descripción.
  2. En el Editor de Microsoft Visual Basic, cambiamos Sub por Function y escribimos el código correspondiente.

Resultado

2014-12-18

Cambiar el texto a mayúsculas, a minúsculas o a nombre propio

Title Para cambiar el texto de mayúsculas, minúsculas o nombre propio podemos emplear las funciones de texto disponibles en Excel o el Relleno rápido en Excel 2013:

Funciones

  • MAYUSC – cambia el texto todo a mayúsculas
  • MINUSC – cambia el texto todo a minúsculas
  • NOMPROPIO – pone en mayúsculas la primera letra de cada palabra

Relleno rápido en Excel 2013

Minúsculas, mayúsculas o nombre propio .

Relleno rápido también detecta otros patrones de mayúsculas y minúsculas.

Notas

  • Para obtener sugerencias automáticas es necesario estar escribiendo junto a los datos relacionados, sin tener columnas en blanco en medio.
  • Para obtener sugerencias automáticas es necesario hacer dos ediciones seguidas, una tras otras sin hacer nada entre las dos (escribir en otra celda u hoja por ejemplo).
  • Relleno rápido no se activa automáticamente para los datos con formato de número. Es necesario apretar el botón homónimo en la pestaña Datos o Ctrl+E.
  • Si no muestra una vista previa, nos situamos en la celda inferior al texto introducido y presionamos Ctrl+E. Si no encuentra un patrón Excel nos avisará.
  • Cuando no acierta con el patrón correcto, le proporcionamos ejemplos adicionales para que Relleno rápido entienda el patrón adecuado: mayúsculas o minúsculas, nombres intermedios, etc.

Referencias

2014-12-16

Aplicar una función a cada columna en R con dplyr

Title En esta entrada vamos a emplear la función summarise_each del paquete dplyr para aplicar una función a las columnas de una matriz o de un data frame. Es una alternativa a la función apply del paquete base que tratamos en una entrada anterior.

Problema

Por ejemplo, imaginemos que queremos calcular la media de las columnas del conjunto de datos trees, cargado por defecto en R. Tendríamos que repetir la misma instrucción para cada columna con el correspondiente nombre de la misma.

mean(trees$Girth)
mean(trees$Height)
mean(trees$Volume)
[1] 13.24839
[1] 76
[1] 30.17097

Solución

Podemos obtener el mismo resultado de manera más concisa, y sin necesidad de saber los nombres de las columnas, usando la función summarise_each.

La sintaxis de summarise_each_(tbl, funs, vars) es:

tbl – la matriz o data frame
funs – lista de funciones que utilizaremos
vars,... – variables a incluir o excluir en mutate/summarise

El operador %>% nos permite evitar paréntesis anidados y ganar en claridad. De esta manera, podemos leer las instrucciones de arriba a abajo y de izquierda a derecha, en lugar de leer desde el interior del paréntesis anidado hacia afuera. Este operador se conoce en inglés como pipe operator y dplyr lo ha adoptado del paquete magrittr. En RStudio podemos obtenerlo con el atajo: Ctrl+Mayús+M

library(dplyr) 
trees %>%
  summarise_each(funs(mean))
     Girth Height   Volume
1 13.24839     76 30.17097

Más ejemplos

Aunque el propósito de esta entrada no es explicar las principales funciones o verbos de dplyr para manipular datos, merece la pena ver algunos ejemplos más:

  • Incluyendo solamente la columna Girth

trees %>%
  summarise_each(funs(mean), Girth)
  Height   Volume
1     76 30.17097
  • Excluyendo la variagle Girth

trees %>%
  summarise_each(funs(mean), -Girth)
  Height   Volume
1     76 30.17097
  • Filtrando las filas cuyo volumen sea superior a 30 pies cúbicos.

trees %>%
  filter(Volume > 30 )%>%
  summarise_each(funs(mean))
     Girth   Height Volume
1 16.43333 79.66667 47.175

Notas

En nuestro ejemplo no necesitaríamos utilizar la función summarise_each o apply, pues hay una función que específicamente calcula la media por columnas colMeans. Lo mismo en el caso de la función suma con la función colSums. Estas funciones son equivalentes a apply con FUN = mean o FUN = sum con MARGIN = 2, pero son mucho más rápidas.

colMeans(trees)
   Girth   Height   Volume 
13.24839 76.00000 30.17097 
colSums(trees)
 Girth Height Volume 
 410.7 2356.0  935.3 
La función summarise_each nos permite listar varias funciones.

trees %>%
  summarise_each(funs(mean, sum))
  Girth_mean Height_mean Volume_mean Girth_sum Height_sum Volume_sum
1   13.24839          76    30.17097     410.7       2356      935.3

Referencias:

2014-12-14

Acceder a las variables de un data frame con attach en R

Title Usando la función attach podemos acceder a los nombres de las variables (columnas) de un data frame sin tener que repetir el nombre del data frame. Por ejemplo si queremos acceder a la variable height del data frame women.

# Sin usar attach
women$height
# Usando attach
attach(women)
height # Variable sin ir precedida del nombre del data frame
La función attach lo que hace realmente es crear un entorno en la ruta de búsqueda (search path) y en él copia los elementos de la lista o columnas del data frame. El search path es la ruta que R seguirá en la búsqueda de objetos y variables. El orden es importante: si el objeto lo encuentra en un entorno, no pasará al siguiente. Con attach, hacemos accesible para R ese data frame, y será posible referirse a sus variables directamente sin especificar el nombre del data frame.

Con la función search podemos listar las bases de datos, objetos y paquetes adjuntos. Contiene un environment por cada paquete cargado y objeto adjuntado al search path.

search()
Se puede apreciar que la base de datos women está en segunda posición global environment.

 [1] ".GlobalEnv"        "women"             "package:hflights" 
 [4] "package:dplyr"     "tools:rstudio"     "package:stats"    
 [7] "package:graphics"  "package:grDevices" "package:utils"    
[10] "package:datasets"  "package:methods"   "Autoloads"        
[13] "package:base"
Por defecto, R adjunta el objeto en la segunda posición del search path, inmediatamente después del global environment, el entorno de trabajo en el que trabajamos normalmente. Podemos alterar la posición del search path en la que adjuntará el objeto, pero no podemos asignarle la posición 1. Por ello, si creamos una variable con el mismo nombre en nuestro entorno de trabajo (global environment), R la encontrará primero en él, y no estaremos trabajando con el data frame deseado.

# Para desconectar el data frame
deattach(women)

Advertencias

Varios autores desaconsejan su uso porque, como vimos antes, puede originar confusión. La misma ayuda de la función attach nos advierte de los peligros de su uso:

  1. Referirnos a un nombre de un objeto erróneamente.
  2. Crear una nueva copia del objeto (data frame) en lugar de modificar el objeto ya vinculado (attached).
  3. Olvidar usar detach para desvincular la base de datos.
  4. Recomienda usar with en lugar de attach/detach.
El manual de estilo de R creado por google es más expeditivo con la función attach:

Las posibilidades de crear errores usando attach son numerosas. Se desaconseja su uso.

Efectos secundarios, un ejemplo

Creer que modificamos el objeto que acabamos de adjuntar (attach), cuando en realidad creamos un vector en el entorno de trabajo (global environment), dejando el objeto original adjunto en el search path sin alterar.

# Crea una nueva variable 
# en nuestro espacio de trabajo
height <- height*2
La asignación normal, mediante el operador <- crea una versión modificada de la variable en el entorno de trabajo (global environment). Cuando volvamos a utilizar la variable height, se referirá a la copia recién creada en el entorno de trabajo, no al data frame adjuntado en el search path.

height
[1] 232 236 240 244 248 252 256 260 264 268 272 276 280 284 288
Elimina el vector creado en el entorno de trabajo. Al volver a usar height se referirá al data frame previamente adjuntado.

rm(height)
Si queremos alterar el data frame adjuntado en el search path, usamos el operador <<- o la función assign:

# Para modificar la variable adjuntada (attached)
# en el search path
height <<- height*2
Cuando hayamos finalizado nuestro trabajo, es importante desvincular el data frame del global environment.

detach(women)

Alternativas

Una alternativa a la función attach es la función with.

# Sin attach
summary(women$height)
# Con with
with(women, summary(height))
Referencias:
Nube de datos