Clase 1: Investigación reproducible

Derek Corcoran
"03/10, 2017"

Curso Análisis y manipulación de datos en R

Primeros pasos

  • ¿Quien no ha usado nunca R? Swirl
  • Evaluación sencilla (Completar tareas + 1 evaluación)
  • Mucho trabajo personal guiado
  • Pagina donde esta todo el curso
  • Consejo reproducible

¿Que es investiagación reporoducible?

  • Código, datos (Crudos) y texto entrelazados
  • en R: Rmarkdown (Rmd) y Rpresentation (Rpres) entre otros

Peng

Reproducibilidad en R

Rep

  1. Una carpeta
    • Datos crudos (csv, xls, html, json)
    • Codigo y texto (Rmd, Rpres, shiny)
    • Resultados (Manuscrito, Pagina Web, App)

Metas del día de hoy

  1. Un código en un chunk
  2. Un inline code
  3. Una tabla en el Rmarkdown
  4. Primer commit en github
  5. Entender que significan las metas de hoy

Crear un nuevo Rmarkdown

NewRMD

Partes de un Rmd

  1. Chunks
  2. Texto
  3. Inline code
  4. Cheat sheet Rmd
  5. El botón mágico Knit

NewRMD

Chunks (Meta 1)

Chunk

  • echo = T o F muestro o no codigo
  • message = T o F muestra mensajes de paquetes
  • warning = T o F muestra advertencias
  • hasta el infinito

Texto

Titulo

subtitulo

cursiva

negrita

link

# Titulo

## subtitulo

*cursiva*

**negrita**

[link](https://stackoverflow.com/users/3808018/derek-corcoran)

Inline code (Meta 2)

Inline

  • Código entrelazado en el texto
  • Para actualizar medias, maximos, minimos
  • Valores de p, diferencias estadísticas

Ejemplo

Pueden copiar el codigo de el siguiente link, copiarlo en un archivo rmd, apretar knit y debieran ver algo como esto:

Terremotos

Empezemos a trabajar!!!

Arrr

Bases de datos con que trabajar

Consejo reproducible 1

Usar el paquete pacman (Package manager)

  • En R usar los mismos paquetes es clave para reproducibilidad
  • p_load cargar el paquete, si no esta instalarlo y luego cargarlo
  • El código de abajo busca el paquete pacman, si no esta lo instala
  • Luego usa p_load sobre los otros paquetes
if (!require("pacman")) install.packages("pacman")
pacman::p_load(ggplot2, dplyr, lubridate)

Tablas: Kable y Stargazer

  • kable parte de knitr, tabla igual a lo ingresado
  • stargazer mas avanzado, comparación de modelos
  • otras opciones como texreg

Stargazer: Tablas resumen (Meta 3)

  • Chunk debe estar en results: “asis”
  • Si es para html la opción debe estar en type = “html”
  • Si es para pdf la opción debe estar en type = “latex”
  • Se puede exportar tabla
library(stargazer)
stargazer(iris,type = "html")
StatisticNMeanSt. Dev.MinMax
Sepal.Length1505.8430.8284.3007.900
Sepal.Width1503.0570.4362.0004.400
Petal.Length1503.7581.7651.0006.900
Petal.Width1501.1990.7620.1002.500

Stargazer: Resumen de modelos economía combustible 1

data("mtcars")
kable(head(mtcars))
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1

Stargazer: Resumen de modelos economía combustible 2

M1 <- lm(mpg~wt, data = mtcars)
M2 <- lm(mpg~hp, data = mtcars)
M3 <- lm(mpg~hp + wt, data = mtcars)
stargazer(M1, M2, M3, type ="html", single.row=TRUE)
Dependent variable:
mpg
(1)(2)(3)
wt-5.344*** (0.559)-3.878*** (0.633)
hp-0.068*** (0.010)-0.032*** (0.009)
Constant37.285*** (1.878)30.099*** (1.634)37.227*** (1.599)
Observations323232
R20.7530.6020.827
Adjusted R20.7450.5890.815
Residual Std. Error3.046 (df = 30)3.863 (df = 30)2.593 (df = 29)
F Statistic91.375*** (df = 1; 30)45.460*** (df = 1; 30)69.211*** (df = 2; 29)
Note:*p<0.1; **p<0.05; ***p<0.01

Armemos nuestras propias tablas!!!

Tabla

Github

  • Como “Google Drive” o “Dropbox” para código
  • Control de cambios (Podemos volver a cualquier versión anterior)
  • En base a codigo (idealmente), pero hay GUIs
  • Cada proyecto es un repositorio

Git

Crear primer repositorio (Meta 4)

  • Crearse cuenta en githib.com
  • Crear repositorio en github
  • Con linea de comando llegar a la carpeta donde se tiene el proyecto
  • luego los siguientes Códigos
  • git init (Crea el repositorio local)
  • git add -A (Agrega todos los archivos al repo)
  • git commit -am “” (Lo deja listo para subirlo a github)

Crear primer repositorio (Meta 4)

  • git remote add origin “URL del repositorio remoto”
  • git remote -v
  • git push origin master

De ahí en adelante

  • git add -A (a menos que tengas un archivo muuuy grande)
  • git commit -am “
  • git push

A guardar el repositorio

Repo