Translate

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

martes, 17 de agosto de 2021

TidyVerse y las condiciones del Tidy data que nos hacen la vida más fácil

ehhhh  (se pronuncia taidivers)
Hace ya varios año se dio un movimiento en la comunidad de R para que se utilizaran una serie de paquetes para unificar estos y que fuera más consistente el análisis de datos.
De aquí se crearon varios paquete cad auno con una funcionalidad diferente.
Para hacerlo más a menos aquí tienes un video directo al grano. 

Datos Tidy 

Ya sea en R, como en Python como en una hoja de cáculo tipo Google Drive o Excel antes de empezar a analizar nuestros datos tenemos que conseguir que los datos cumplan una determinada extructura. en resumen una forma de tabla o tabular. De no ser así algo puede salir mal y darnos unos resultados que los programas no van a comprender.
Condiciones que deben cumplir los datos Tidy
  1. - Cada columna es nua variable
  2. - Cada fila es una observación
  3. - Cada celda es un valor
Cumpliendo estos tres mmmm valores universales, podemos saber que estamos en el buen camino. Aunque muchas veces nos va a tocar transformar los datos para que tengan esta forma.

Paquete que nos ayudan a transformar datos para cumplir con el Data Tidy

Si usamos R, tenemos un paquete que se llama TidyR con su cheetshet
Si usamos Python, pandas cumple nuestro papel. Y para muestra esta cheetshet de pandas para data wrangling
Y para terminar un éxito de ventas de cuando esa joven de Tabular Bells (o algo así)

domingo, 24 de enero de 2016

Shiny: Crear mini aplicaciones con R -Studio

Mirando ofertas de trabajo he visto que pedían para un par de ellas saber usar Shiny. Así que tras una búsqueda en Internet me he puesto manos a la obra para ver de que se trataba.Y me he llevado una grata sorpresa.

RStudio sigue pensando en como hacer la vida más fácil a los no programadores y ahora nos permite crear aplicaciones al más puro estilo servlet de java con, con su interfaz gráfica para poder jugar con ella sin tener que programar. De esta forma cualquier programa que hagamos en R lo podemos subir a Internet y hacer que un usuario pueda jugar con él. Este post explica muy bien de que va en un lenguaje muy llano y en castellano.

Así como un poco de magía.

via GIPHY

Disclaimer: Este artículo fue escrito en 2016! He actualizado (Abril 2020) el post con información ya que había links rotos. Espero que sirva de ayuda.

Cómo se ve un programa en Shiny


Para poder ponernos con Shiny, lo primero que tenemos que hacer es instalarlo, aunque si tenemos una de las últimas versiones de Rstudio ya nos vendrá integrado.

Instalar shiny en R

Para los anticuados:
> install.packages("shiny")


 Para los más modernos
Directamente pasamos a Rstudio
 

Cómo funciona un programa en Shiny

Cualquier proyecto shiny lo vamos a ver como un directorio formado por varios archivos.Debido a que el programa va a correr en un servidor (aunque sea en localhost)  y que tiene interfaz gráfica vamos a necesitar al menos un script para el servidor y otro script para nuestro GUI.

Archivo ui.R

Este archivo va a tener todo lo que necesitamos para la interfaz gráfica.La ventanita, los títulos, etc etc. Para hacer todavía más fácil la creación de la aplicación si decidimos publicarla en una web por defecto Shiny la creadará con el framework Bootstrap que es ampliamente utilizado hoy en día y usa HTML5. ¿Qué más se puede pedir?

Código ui.R

 This is the user-interface definition of a Shiny web application.
# You can find out more about building applications with Shiny here:
#
# http://shiny.rstudio.com
#

library(shiny)

shinyUI(fluidPage(

  # Application title
  titlePanel("Old Faithful Geyser Data"),

  # Sidebar with a slider input for number of bins
  sidebarLayout(
    sidebarPanel(
      sliderInput("bins",
                  "Number of bins:",
                  min = 1,
                  max = 50,
                  value = 30)
    ),

    # Show a plot of the generated distribution
    mainPanel(
      plotOutput("distPlot")
    )
  )
))

Archivo server.R 


Este archivo es el del servidor.

Código server.R


# This is the server logic for a Shiny web application.
# You can find out more about building applications with Shiny here:
#
# http://shiny.rstudio.com
#

library(shiny)

shinyServer(function(input, output) {

  output$distPlot <- renderPlot({

    # generate bins based on input$bins from ui.R
    x    <- faithful[, 2]
    bins <- seq(min(x), max(x), length.out = input$bins + 1)

    # draw the histogram with the specified number of bins
    hist(x, breaks = bins, col = 'darkgray', border = 'white')

  })

})

Crear un proyecto en Shiny



Esto va a hacer que tengamos un directorio con estos dos archivos en RStudio tal que así en nuestro nuevo directorio/proyecto


Una vez creado el nuevo proyecto podemos ver aplicaciones preinstaladas para empezar a toquetearlas. Para ello sólo hace falta llamarlas desde la línea de comandos y correr la aplicación de esta forma
> library(shiny)
> runApp("my_app")
Shiny nos los pone fácil y nos tiene preparadas algunas aplicaciones preinstaladas. Así que podemos llamarlas y ver lo que es capaz de hacer. Aquí los ejemplos que podemos encontrar:

runExample("01_hello") # a histogram
runExample("02_text") # tables and data frames
runExample("03_reactivity") # a reactive expression
runExample("04_mpg") # global variables
runExample("05_sliders") # slider bars
runExample("06_tabsets") # tabbed panels
runExample("07_widgets") # help text and submit buttons
runExample("08_html") # Shiny app built from HTML
runExample("09_upload") # file upload wizard
runExample("10_download") # file download wizard
runExample("11_timer") # an automated timer
También puedes ver diferentes ejemplos para estudiar y trabajar sobre el código.
En mi caso he re-creado una app que lee archivos en txt y los muestra en una nube de palabras (wordcloud). Quiero que me ayude a entender de una forma fácil y visual cuales son los términos que más se repiten en los artículos de mi web. La app todavía necesita varias vueltas como por ejemplo crear stop-word o cambiar el tipo de codificación de caracteres. Pero bueno, se vería así.

Ejemplos de R con código

La página principal donde encontré los ejemplos ha desaparecido pero aún queda en pie los enlaces a los ejemplos.

Los 108 ejemplos con código puedes encontrarlos en el siguiente fork en github. En mi caso usé código del ejemplo de 002-text y wordcloud ( http://gallery.shinyapps.io/082-word-cloud )

 He puesto el código y el enlace a su página en el siguiente documento para que sea más fácil de encontrar
https://docs.google.com/spreadsheets/d/1dJMZkdVHxk-mjta5eAfavCeQGLjEk6gACEZ_GkLaWAo/edit?usp=sharing

En github puedes encontrar el código de cuando cree el post (gracias Maria del pasado por hacer un fork).

*Yo actualizando los enlaces a este post que escribí en 2016, tras pasarme a Python.


Referencia de la imagen- 9gag.com/

Documentación e información sobre Rstudio Shiny


domingo, 13 de diciembre de 2015

Año nuevo - cursos nuevos

Hola gente anónima que pulula por Internet

He decidido retomar el blog con la idea de automotivarme (ese era el fin de este blog...)  con los nuevos cursos que me he apuntado y aunque en principio iban a ser un par, bueno, creo que me he pasado un poco. El saber no ocupa lugar, pero si mucho tiempo.

Por ello me he tomado mes y medio para ponerme al día en todo lo nuevo relativo al análisis digital antes de seguir con mi carrera profesional con la ideas de equiparme con nuevas herramientas que poder aplicar a mi trabajo.

Objetivo principal:

Aprender nuevas herramientas, buenas prácticas y métodos data-driven que aplicar al Digital Marketing/Business hasta el 15 de Febrero.

Objetivos específicos:

1.Conseguir certificados que sean reconocibles a nivel internacional
2.Aprender metodología (frameworks) para poder aplicar al análisis de datos en Marketing/Ecommerce.
3Realizar análisis estadísticos con lenguajes de programación específicos del análisis de datos.
4.Aprender nuevas formas de poder comunicar los insights que encuentro a personas que no saben sobre datos/estadísticas.


1. Conseguir certificados que sean reconocible a nivel Internacional

Motivación: Uno de los problemas que supongo que como yo tienen las personas que llevan tiempo trabajando en todo lo relacionado con lo digital ,es que ningún plan de estudios de posgrado realmente satisface los intereses y el coste (económico/de tiempo)-beneficio. Muchos de estos programas no cumple las expectativas a nivel de formación- contenido práctico y casos de usos. Ello, unido a que  la información que se da en estos,se va quedando anticuada de un año para otro y que luego en según que empresa trabajan con unos programas u otros hace muy difícil que me decida por ninguno de ellos.


- Conseguir la Google Adwords Individual Certification
Llevo trabajando con Adwords al menos dos años, no debería ser muy dificil
DONE -> https://www.google.com/partners/?q=google%20partners#i_profile;idtf=102341943869267004654;
- Renovar Google Analytics Individual Certification
Me caducó en Agosto, pero no se lo digáis a nadie.

- Conseguir al menos un certificado de Market Motive.
Market Motive es una plataforma de aprendizaje cuyo cofundador es Avisnash Kaushik, uno de los cerebro de la analítica web en el mundo. Junto a otras cabezas pensantes de otras disciplinas ha creado esta plataforma. Sin duda, aprobar alguno de exámenes de sus materias va a tener mérito.


Métricas:
Certificado Adwords: APROBADO (Hurrah!)
Certificado Analytics
Certificado Market Motive


2.Aprender metodología (frameworks) para poder aplicar al análisis de datos cuantitativo en Marketing/Ecommerce.

Para ello estoy inscrita en varios de Marketing Analítico. Los que están en verde son los que cumplen con este fin
CURSOSPRIORIZATIONSTARTINGDEADLINEPLATFORMUNI
Customer Analytics104/01/201615/02/2016CourseraWharton
Using Databases with Python311/01/201622/02/2016CourseraMichigan
Data Visualization and Communication with Tableau211/01/201622/02/2016CourseraDuke
Data Analysis Tools611/01/201615/02/2016CourseraWesleyana
Econometrics425/01/201624/03/2016CourseraRotterdam
Marketing analysis525/01/201625/03/2016CourseraESSES
A/B testing7 17/01/2016UdacityGoogle
Métricas:
Obtener certificado

3. Realizar análisis estadísticos con lenguajes de programación específicos

Esta pregunta está relacionado con lo anterior, pero los cursos que más focalizan en el uso de programas son los que están en naranja.

Hace ya un tiempo que empecé a usar R para algunas tareas muy específicas, pero a la hora de usarlo con todo su potencial aplicado a  tengo siempre que depender de que alguien haya hecho un repositorio. Muchas empresas hacen mucho más fácil utilizar la API por medio de Python. Por otra parte tengo que repasar SQL, que es un lenguaje que estudié en DAI

Luego tenemos SAS y SPSS, ambos software propietario.SAS no se puede utilizar sin licencia. He sido usuaria de SPSS durante toda la carrera y posteriromente analizando encuestas de satisfacción y no tengo problemas en usar los estadísticos mas básicos y la matriz.

Así que como mucho otr@s me pregunto ¿R o Python? Si tú también te lo preguntasAquí una infografía muy apañada
Bueno, parece que en principio los dos, ya que los cursos marcan que lenguajes habría que usar.
Métricas:
Obtener certificados

4.Aprender nuevas formas de poder comunicar los insights que encuentro a personas que no saben sobre datos/estadísticas.

Cuando trabajaba haciendo reporting, una de las preguntas que nos hacíamos a primero de mes, tras ir a contra reloj actualizando los reports era: ¿miran realmente los clientes los datos o solamente se dedican a mirar los rankings en SEO y el dinero gastado? Más tarde yo misma he sufrido por parte de la directiva de la empresa el sentimiento de"¿De verdad nadie ve la tendencia? Sí está ahí en la tabla!"Y me costó ir de tablas muy específicas, a menos específicas; de ahí a gráficos completos; más tarde a gráficos de barras... Bueno, hay que comunicarse con todos los stakeholder así que un curso de tableau, que ya había usado anteriormente, me viene al pelo.
Métricas:
Obtener certificado


Así que una vez todo sumarizado: 
HERE WE GO.

viernes, 27 de marzo de 2015

Un paquete para actualizar R

Ufff tienes R desde hace mil y en un ataque de aburrim originalidad te ha dado por actualizarlo. Prepárate para volver a bajar el software, instalar los paquetes,.. ESPERA ESPERA que hay buenas noticias.

Tachán existe un paquete que te hace todo esto.

Instalar el paquete installr para actualizar R

1. Si usas la GUI debes ir a Paquetes y buscar installr que es el paquete que te instalará

2.Elegimos:  installr
en la lista
3.Ahora a por un poco de código (de copy-paste), para que no sé diga que si los que usan windows...
 library(installr)
 updateR()
4.Vamos, super simple: llamamos a la librería y actualizamos R

Instalando R

5. Nos pregunta que si queremos instalar la versión nueva. Bueno, pues sí, porque eso es lo que queremos.


6. Y se baja y se empieza a instalar...
7. Y una vez terminado, si estamos animado podemos actualizar los paquetes que tenemos, así ya de paso.

Documentación del paquete installr

8. La documentación sobre installr , el paquete para instalar R está por aquí http://cran.r-project.org/web/packages/installr/index.html. Incluso te avisa si no necesitas actualizar porque tienes la última versión del programa.

Así que aquí me hallo con mi flamante nueva versión, apuntico de salir la 2.0
R version 3.1.3 (2015-03-09) -- "Smooth Sidewalk"

P.D. La verdad que es un paquete muy cómodo y muy recomendable.

sábado, 8 de febrero de 2014

Acceder al API de Google Analytics con R

Hace unos dias que estaba con la idea de retomar R y ahora que me estoy preparando para el examen de Google Analytics (que van y lo cambian dos semanas antes de cuando iba a presentarme...) he descubierto que "minar" desde R mi cuenta es bastante fácil.

Pues esto es lo que he hecho .Soy novatilla en R así que si crees que alguna de estos commandos no los necesito o lo puedo mejorar déjame unn comentatario. He superdocumentado el código para dummies como yo.


# Install packages from github (by skardhamar)
# Instalar los paquete de  github (by skardhamar)
install_github("rga", "skardhamar")
# Install packages
# Instalar los paquetes que necesitamos
install.packages("devtools")
install.packages("RCurl")
# Call libraries
# Llamar a las librerias para usarlas
library(devtools)
library(rga)
library(RCurl)

# Save certificate
# Le decimos que queremos usar el certificado. A veces da problemas si no ponemos esta línea antes de crear la instancia
options(RCurlOptions = list(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl")))

# Create an instance (ga)
# Crear una instancia que llamaremos ga en un alarde de originalidad
rga.open(instance="ga")

#Here we go! Testing
#Al lio! Query probando probando
mitesoro <- ga$getData(xxxxxxxx,
                        start.date="2013-09-01", end.date="2013-09-30",
                        metrics = "ga:visits",
                        dimensions = "ga:source",
                        sort = "-ga:visits",
                        start = 1, max = 10)

mitesoro <- ga$getData(xxxxxxx,
                        start.date="2013-09-01", end.date="2013-09-30",
                        metrics = "ga:visits",
                        dimensions = "ga:source",
                        sort = "-ga:visits",
                        start = 1, max = 60)
#Let's see a graph
#Ahora vamos a verlo en un gráfico
barplot(mitesoro$visits, main="Visits by month Visitas por Mes", xlab="Month/Mes", names.arg=miTesoro$month, las=1, col=rainbow(6))

A la hora de estudiar la query es importante echar un vistazo a la <a href="https://developers.google.com/analytics/devguides/reporting/core/v3/coreDevguide">documentacion de Google</a>. Yo, para empezar he usado esta hoja de Google Drive donde puedes ver el nombre de las variables ... que para empezar ya te permite hacer muchas cosas

Importante para dummies! Tardé al menos una hora en tener problemas de acceso a mi cuenta ya que obtenía el siguiente error:
> myresults <- ga$getData(9999999,
+                         start.date="2013-09-01", end.date="2013-09-30",
+                         metrics = "ga:visits",
+                         dimensions = "ga:source",
+                         sort = "-ga:visits",
+                         start = 1, max = 60)
Error in ga$getData(9999999, start.date = "2013-09-01", end.date = "2013-09-30",  :
  error in fetching data: User does not have sufficient permissions for this profile.
Y todo se debia a que habia puesto mi numero de cuenta, en vez de mi id. Para saber tu id basta con poner el siguiente comando:

ga$getRefClass()