Mostrando entradas con la etiqueta R-project. Mostrar todas las entradas
Mostrando entradas con la etiqueta R-project. Mostrar todas las entradas

lunes, 8 de febrero de 2021

ETIQUETAS DE VALOR CON R

En una entrada anterior nos referíamos al uso de proc format” de SAS para asignar etiquetas a los valores de un conjunto de datos. Señalábamos que su uso aportaba eficiencia al trabajo, permitiendo codificar valores numéricos que traducen variables de cadena, más pesadas para su procesamiento.

Hoy vamos a referirnos a las etiquetas de valor (labels) en R. El paquete expss, creado por Gregory Demin y Sebastian Jeworutzki, permite realizar esta beneficiosa tarea. Una vez instalado dicho paquete, debemos llamarlo para empezar a crear las etiquetas de valor:


library(expss)

Después creamos una tabla o dataframe llamada “acude” para después asignar los valores con la función “val_lab”. Las etiquetas serán “No” (que en la tabla tiene el valor numércico 0) , “Sí” (1), “No contesta” (8)   y “No sabe” (9):

acude = c(1, 9, 1, 1, 0, 1, 1, 0)

val_lab(acude) = num_lab("
0 No
1 Sí
8 No contesta
9 No sabe
")

También podemos añadir un valor nuevo a esa misma variable, utilizando la función add_val_lab. En el ejemplo añadiremos el valor “No aplica”:

add_val_lab(acude) = num_lab("
7 No aplica
")

R es un software libre creado para el trabajo estadístico. Desde Sociología Necesaria impulsamos su uso y te asesoramos en su manejo.

domingo, 10 de noviembre de 2019

CÓMO REORDENAR VARIABLES EN R

En anteriores entradas explicábamos cómo ordenar variables en SPSS y en SAS. Teníamos pendiente hacer lo mismo con R, así que nos ponemos en ello.


Para que podáis reproducir el ejemplo, creamos un dataframe (conjunto de datos) en R, que va a contener cuatro observaciones y tres columnas (variables).


frutas <- data.frame
      (
  x = c("apple", "orange", "banana", "strawberry"),
  y = c("a", "d", "b", "c"),
  z = c(4:1)  
      )
frutas


Si copiáis y ejecutáis el código de arriba en R, obtendréis también un listado con las observaciones del dataframe.

Si quisiéramos colocar la tercera columna (z) por delante de la segunda (y), ejecutaremos el código siguiente, con el que también generaremos un listado similar al anterior, pero esta vez en el orden deseado.


frutas <- frutas[, c(1, 3, 2)]
frutas


Si os fijáis, el primer nombre "frutas" hace referencia a que se va a crear un nuevo dataframe a partir del anterior (que también se llamaba "frutas"). Y los números entre paréntesis establecen el orden de columnas deseado: primero la 1, después la 3 y, finalmente, la columna 2 del antiguo conjunto de datos.

domingo, 16 de junio de 2019

¿CÓMO ENCRIPTAR LOS DATOS DE UNA VARIABLE EN R?

Imagen de R
Encriptar y desencriptar una variable en R
En muchas ocasiones necesitamos encriptar los datos personales de una tabla con información que vamos a analizar estadísticamente. En R, existe un paquete que nos permite ocultar los datos de una columna y seguir trabajando con la tabla, de modo que dicha columna queda con un formato "encriptado". Para ello, utilizaremos un paquete llamado Encryptr.

Con Encript nos será posible encriptar una variable y desencriptarla después, según las necesidades que tengamos en cada momento. Tanto para encriptar como para desencriptar necesitaremos asignar a la tabla una clave, que llamaremos inicialmente para su asignación y que deberemos cumplimentar cada vez que realicemos alguna de esas tareas.

Como se observa en el código de abajo, hemos encriptado la columna "nombre" de la tabla "cuentas". La creación de la clave de encriptado se realiza con el comando "genkeys()", mientras que el encriptado y el desencriptado utilizan las funciones "encrypt" y "decrypt", respectivamente.



library(encryptr)

usuarios <- data.frame("nombre" = c('Teresa Cuesta','Tomás Pino',
'Lourdes Sanz'), "ingresos" = c(21000, 23400, 26800),"inicio" = c('2018-11-1',
'2017-3-25','2018-3-14'))

genkeys()

# Encriptamos la columna employee

usuarios <- encrypt(usuarios,nombre)
usuarios

# Ahora la desencriptamos 

usuarios <- decrypt(usuarios,nombre)
usuarios


lunes, 25 de marzo de 2019

BIG DATA Y VARIABLES DE CADENA

Imagen de un cuadro de salida
Imagen de un cuadro de salida
Recordamos nuestros inicios en el mundo de los paquetes estadísticos. De la mano de la versión 2.0 de SPSS dimos nuestros primeros pasos aprendiendo a codificar encuestas. Los equipos de entonces tenían serias limitaciones de procesamiento. Analizando una encuesta de 1.200 registros, encontrábamos tiempos de procesamiento altísimos, en ocasiones había que dejar el SPSS trabajando toda la noche para obtener una tabla de contingencia de dos variables. En el mismo sentido, nos enfrentábamos también a dificultades para almacenar datos muy pesados.

En ese contexto, aprendimos a codificar los valores de cadena en valores numéricos, para evitar malgastar recursos de procesamiento y almacenamiento. Si tenemos una lista de provincias de España, las traducimos a números y usamos “Value labels”, el comando de SPSS que definía etiquetas para cada uno de esos valores numéricos que obteníamos en los cuadros de salida. En SAS, se utiliza para lo mismo “proc format” que, ademas, permite recodificar valores.


Con el paso del tiempo, los equipos de cómputo ganaron en capacidad de procesamiento y los discos duros fueron creciendo en capacidad para almacenar matrices de datos de gran tamaño. Por unos años, casi nos olvidamos de esas amenazas y generaciones de jóvenes se incorporaron a la analítica desconociendo completamente estas amenazas.


Pero llegamos al momento histórico actual. El creciente proceso de digitalización de la información nos introdujo en fuentes más allá de las encuestas. Se desarrolló el llamado big data: grandes volúmenes de información desestructurada que se podía utilizar para generar conocimiento. Tanto es así que veloces procesadores y eficientes dispositivos de almacenamiento se están empezando a quedar pequeños. Una época en la que, por primera vez, nos planteamos el enorme consumo de energía producido por los servidores y sus terminales clientes.


Ante esta situación, recodificar información de cadenas de texto o strings es importante para hacer viables los proyectos y para reducir el consumo de energía de los servidores. Una cuestión, esta última, que no sólo es un problema de costos sino también medioambiental.


Desde Sociología Necesaria podemos ayudarte en esa tarea. Si trabajas con SAS, SPSS o R no dudes en consultarnos. Podemos ayudarte a optimizar tus procesos.

domingo, 24 de febrero de 2019

GGANIMATE, GRÁFICOS EN MOVIMIENTO CON R

PIB y esperanza de vida, 1954-2009
Fuente: github.com
Presentar gráficos que contengan diferentes dimensiones y que nos permitan explicar ideas con claridad es una necesidad creciente de las personas que trabajan con datos.

En R ya existía el paquete ggplot2, que permite elaborar unos gráficos con una gran variedad de formas y coloridos. Pero el paquete gganimate ha dado movimiento a los gráficos, eligiendo una variable de transición, como puede ser el año.

El GIF que vemos en esta misma entrada está creado con gganimate. Muestra la relación entre PIB y esperanza de vida en países y continentes del mundo en el período 1954-2009. La transición nos permite ver el cambio histórico: cómo el alargamiento de la esperanza de vida se ha dado con más rapidez en algunas partes del mundo. 

domingo, 28 de octubre de 2018

MACRO-FUNCIONES EN R

En otras entradas nos hemos ocupado de las macros de SAS y las macros de SPSS, como formas de automatizar procesos con datos empleando el código de ambas aplicaciones. Nos faltaba explicar las macros de R, que en la terminología de dicho lenguaje abierto se llaman "funciones".

Para desarrollarlas, tenemos primero que definir el conjunto de registros en los que se va a generalizar una operación. Vamos a partir de un ejemplo en el que escribimos un código que trata de sustraer el código de municipio de una cadena en la que el nombre del mismo está pegado a éste, que lleva el prefijo “id” a la izquierda. El conjunto se puede definir a través de un data frame: en el ejemplo lo hemos llamado cadena. Creamos una macrovariable (en el ejemplo la hemos llamado “poblac2”), a partir de los valores del data frame cadena.


Posteriormente, definimos el ámbito de la función con el subcomando “for”.


Después, colocamos una llave abierta ("{"), a la que le sigue el código necesario extraer el municipio en cada uno de los registros de “cadena”.


Para, finalmente, cerrarla ("}". Si ejecutamos todo el código, obtendremos el resultado de esta operación para cada una de los municipios.




cadena <- c("alcala-de-henares-id28005", "san-miguel-de-bernuy-id40183",
"san-roman-de-hornija-id47150","zumaia-id20081",
"beasain-id20019","ribatejada-id28122")

for (i in 1:length(cadena)) {

poblac2= cadena[i]

municipio <- gsub("-"," ",sapply(strsplit(poblac2, "-id"), "[", 1))
print(municipio)

}

El ejemplo es bastante sencillo para facilitar su entendimiento. Pero entre las llaves podemos colocar todo el código que necesitemos para ejecutar alguna transformación en cada registro. Si no lo utilizáramos, necesitaríamos adaptar uno a uno nuestro código para todos los casos.

domingo, 2 de septiembre de 2018

R-SHINY, PRESENTA TUS RESULTADOS CUANTITATIVOS EN LA WEB

Logotipo del paqueteEn ocasiones, sentimos la necesidad de difundir los resultados de nuestras investigaciones cuantitativas a través de la web. Buscamos la posibilidad de que los visitantes puedan navegar a través de los datos obteniendo cuadros estadísticos y gráficos. En otras ocasiones, requerimos que nuestro equipo de trabajo pueda cargar rápidamente este tipo de información.

Con anterioridad, nos hemos referido a la herramienta R, que es software libre basado en un lenguaje orientado a la estadística que nos abre la posibilidad de realizar una infinidad de tareas, desde las aproximaciones más sencillas a los análisis más complejos.


Recientemente, hemos descubierto R-Shiny, un paquete de R que permite crear aplicaciones que se pueden consultar desde la web. Nos parece una herramienta excelente, de la que destacamos su solidez y su eficiencia. Una forma de aprovechar las potencilidades que brinda el lenguaje R para difundir nuestras investigaciones.


Si ya tienes instalado R en tu ordenador, puedes descargar el paquete con el siguiente comando:



 install.packages("shiny")


Si los datos están en SPSS, SAS, excel u otros formatos, también puedes convertirlos a R y publicarlos con R-Shiny.

Puedes obtener un manual en la siguiente dirección


No dudes en consultarnos si tienes alguna cuestión relacionada.

martes, 28 de mayo de 2013

R-PROJECT PARA SOCIÓLOGOS

Imagen de una salida con R-project
Como se ha señalado en una entrada anterior, R-project es un paquete estadístico libre cada vez más utilizado para analizar datos cuantitativos. Fue desarrollado por Robert Gentleman y Ross Ihaka del Departamento de Estadística de la Universidad de Auckland (Nueva Zelanda) en 1993 y su uso es cada vez mayor por todo el mundo.

Pese a la mayor dificultad de aprendizaje de un programa que funciona por línea de comandos, R ofrece multitud de funcionalidades para la depuración, transformación, análisis y graficación de datos. Lo cual, unido a las ventajas que aporta el carácter no licenciado del mismo, lo convierten en una buena opción para quienes disponen de tiempo para su aprendizaje.

R para sociólogos es un manual en francés del paquete estadístico R orientado para sociólogos. Pretende aportar una fácil comprensión del sistema mediante un lenguaje accesible. Trata de explicar los principales elementos de la aplicación: comandos, objetos, vectores, funciones, variables, etc. Procesos cotidianos como la importación y exportación de datos en otros formatos (como SAS o SPSS), la creación de índices, la recodificación de variables, el pegue de bases de datos, o los análisis bivariados, multivariados y los modelos estadísticos, además de los gráficos, entre otros temas, son explicados en este manual.

Julien Barnier, autor del libro, es miembro del Grupo de Investigación sobre Socialización de la Escuela Normal Superior (ENS) de Lyon.


Para quienes prefieran un manual en español, pueden descargar “Estadística básica con R y R-Commander, de A.J. Arriaza, F. Fernández, M.A. López, M. Muñoz, S. Pérez y A. Sánchez.