class: center, middle, inverse, title-slide # Clase 1 ## Introducción a R ###
### 04-10-2021 --- # ¿Qué es R? <br> - Un lenguaje de programación orientado al análisis estadístico. -- - Se conoce como un lenguaje orientado objetos, se pueden utilizar múltiples paquetes mediante sus librerias para trabajarlos. -- - Existe una interfaz básica con la *consola* que permite realizar programación (Rgui). -- - **Rstudio** es una interfaz que permite correr la consola de R y realizar funciones. Con un entorno de trabajo más intuitivo. -- - Si bien trabajaremos en Rstudio, en general hablaremos de R para referirnos al programa. -- <br> .center[] --- -- # Utilidades de R <br> -- 1. Analizar encuestas sociales que frecuentemente podrán requerir demasiados recursos de excel (CASEN, ENE, ESI, CENSO, etc.) -- 2. Es software libre lo que tiene como ventaja que existe una gran cantidad de personas que conforman una comunidad que apoya el desarrollo del codigo para mejorar el programa continuamente. -- 3. Es uno de los programas más utilizados en el ámbito cientifico lo cual permite la replicabilidad de las investigaciones. -- 4. Se pueden hacer reportes completos sin necesidad de otros programas o presentaciones como esta. --- --- class: center, middle # Paquetes  --- class: center # Vocabulario básico de R <br> <center> .font100[ | Término | Descripción | |:-----------------|:-----------------------------------------------:| |consola | El portal "principal" a R, donde escriben los comandos | | script | tu block de notas o archivo de comandos | | functions | funciones, bloques de comandos repetibles | | working directory | Ubicación de los archivos de entrada/salida | | packages |Paquetes para R | | vector | La unidad básica de datos en R | | dataframe | datos organizados en filas y columnas | Para más detalles visitar <http://adv-r.had.co.nz/Vocabulary.html> ] --- # Funciones básicas - ? = consultar por un paquete o libreria - str() = conocer la structura de una base o dataframe - library() = utilizar una libreria determinada - intall.packages() = instalar una libreria - getwd() = conocer el directorio de trabajo - setwd() = configurar un directorio de trabajo -- ```r dia <- c("lunes", "martes", "miercoles", "jueves", "viernes", "sabado", "domingo") mañana <- c(3,4,5,6,4.5,3,4) tarde <- c(5,5.5,4,5,5,6,4) horas <- data.frame(dia, mañana, tarde) str(horas) ``` ``` ## 'data.frame': 7 obs. of 3 variables: ## $ dia : chr "lunes" "martes" "miercoles" "jueves" ... ## $ mañana: num 3 4 5 6 4.5 3 4 ## $ tarde : num 5 5.5 4 5 5 6 4 ``` --- # Operados y asignadores importantes %in%, match =, <-, $, [, [[, head, tail, subset with, assign, get # Comparaciones all.equal, identical !=, ==, >, >=, <, <= is.na, complete.cases is.finite --- .pull-right[ # Matemática básica max, min, prod, sum cummax, cummin, cumprod, cumsum, diff mean, median, cor, sd, var ] -- .pull-left[ # Cómo pedir ayuda - ```help()```: obtener ayuda por consola - ```??...```: obtener ayuda por consola - Pestaña ```Help``` de Rstudio - [Cheat Sheet de RStudio](https://www.rstudio.com/wp-content/uploads/2015/02/rmarkdown-cheatsheet.pdf) - Buscar en San Google (stackoverflow, R project...) ] --- ```r #Conocer los niveles de un factor requiere primero factorizar horas$dia <- as.factor(horas$dia) levels(horas$dia) ``` ``` ## [1] "domingo" "jueves" "lunes" "martes" "miercoles" "sabado" ## [7] "viernes" ``` ```r #install.packages("carData") instalarlo si no está library(carData) str(carData::Chile) ``` ``` ## 'data.frame': 2700 obs. of 8 variables: ## $ region : Factor w/ 5 levels "C","M","N","S",..: 3 3 3 3 3 3 3 3 3 3 ... ## $ population: int 175000 175000 175000 175000 175000 175000 175000 175000 175000 175000 ... ## $ sex : Factor w/ 2 levels "F","M": 2 2 1 1 1 1 2 1 1 2 ... ## $ age : int 65 29 38 49 23 28 26 24 41 41 ... ## $ education : Factor w/ 3 levels "P","PS","S": 1 2 1 1 3 1 2 3 1 1 ... ## $ income : int 35000 7500 15000 35000 35000 7500 35000 15000 15000 15000 ... ## $ statusquo : num 1.01 -1.3 1.23 -1.03 -1.1 ... ## $ vote : Factor w/ 4 levels "A","N","U","Y": 4 2 4 2 2 2 2 2 3 2 ... ``` --- ```r library(gmodels) CrossTable(dia,tarde, prop.chisq=FALSE) ``` ``` ## ## ## Cell Contents ## |-------------------------| ## | N | ## | N / Row Total | ## | N / Col Total | ## | N / Table Total | ## |-------------------------| ## ## ## Total Observations in Table: 7 ## ## ## | tarde ## dia | 4 | 5 | 5.5 | 6 | Row Total | ## -------------|-----------|-----------|-----------|-----------|-----------| ## domingo | 1 | 0 | 0 | 0 | 1 | ## | 1.000 | 0.000 | 0.000 | 0.000 | 0.143 | ## | 0.500 | 0.000 | 0.000 | 0.000 | | ## | 0.143 | 0.000 | 0.000 | 0.000 | | ## -------------|-----------|-----------|-----------|-----------|-----------| ## jueves | 0 | 1 | 0 | 0 | 1 | ## | 0.000 | 1.000 | 0.000 | 0.000 | 0.143 | ## | 0.000 | 0.333 | 0.000 | 0.000 | | ## | 0.000 | 0.143 | 0.000 | 0.000 | | ## -------------|-----------|-----------|-----------|-----------|-----------| ## lunes | 0 | 1 | 0 | 0 | 1 | ## | 0.000 | 1.000 | 0.000 | 0.000 | 0.143 | ## | 0.000 | 0.333 | 0.000 | 0.000 | | ## | 0.000 | 0.143 | 0.000 | 0.000 | | ## -------------|-----------|-----------|-----------|-----------|-----------| ## martes | 0 | 0 | 1 | 0 | 1 | ## | 0.000 | 0.000 | 1.000 | 0.000 | 0.143 | ## | 0.000 | 0.000 | 1.000 | 0.000 | | ## | 0.000 | 0.000 | 0.143 | 0.000 | | ## -------------|-----------|-----------|-----------|-----------|-----------| ## miercoles | 1 | 0 | 0 | 0 | 1 | ## | 1.000 | 0.000 | 0.000 | 0.000 | 0.143 | ## | 0.500 | 0.000 | 0.000 | 0.000 | | ## | 0.143 | 0.000 | 0.000 | 0.000 | | ## -------------|-----------|-----------|-----------|-----------|-----------| ## sabado | 0 | 0 | 0 | 1 | 1 | ## | 0.000 | 0.000 | 0.000 | 1.000 | 0.143 | ## | 0.000 | 0.000 | 0.000 | 1.000 | | ## | 0.000 | 0.000 | 0.000 | 0.143 | | ## -------------|-----------|-----------|-----------|-----------|-----------| ## viernes | 0 | 1 | 0 | 0 | 1 | ## | 0.000 | 1.000 | 0.000 | 0.000 | 0.143 | ## | 0.000 | 0.333 | 0.000 | 0.000 | | ## | 0.000 | 0.143 | 0.000 | 0.000 | | ## -------------|-----------|-----------|-----------|-----------|-----------| ## Column Total | 2 | 3 | 1 | 1 | 7 | ## | 0.286 | 0.429 | 0.143 | 0.143 | | ## -------------|-----------|-----------|-----------|-----------|-----------| ## ## ``` --- ```r mean(horas$tarde) ``` ``` ## [1] 4.928571 ``` -- ```r mean(horas$mañana) ``` ``` ## [1] 4.214286 ``` -- ```r max(horas$mañana) ``` ``` ## [1] 6 ``` -- ```r max(horas$tarde) ``` ``` ## [1] 6 ``` -- ```r min(horas$tarde) ``` ``` ## [1] 4 ``` --- ## Objetos en R ```r x <- 1 y <- 2 z <- x+y z ``` ``` ## [1] 3 ``` ```r a <- seq(1:20) a ``` ``` ## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ``` --- ## Operaciones ```r length(a) ``` ``` ## [1] 20 ``` ```r summary(a) ``` ``` ## Min. 1st Qu. Median Mean 3rd Qu. Max. ## 1.00 5.75 10.50 10.50 15.25 20.00 ``` --- ## Tablas ```r mean(a) ``` ``` ## [1] 10.5 ``` ```r median(a) ``` ``` ## [1] 10.5 ``` ```r a <- as.data.frame(a) head(a) ``` ``` ## a ## 1 1 ## 2 2 ## 3 3 ## 4 4 ## 5 5 ## 6 6 ``` --- # Importar un archivo excel 1. Instalar paquete: readxl: install.packages("readxl") 2. Llamar libreria: library("readxl") 3. Utilizar la función: readxl("Directorio del archivo") 4. Ejemplo: readxl("C:/documentos/base.xlsx") 5. Si se quiere una pestaña especifica se puede señalar con **sheet**