0. Definición del directorio de trabajo

Al iniciar cada sesión, siempre es importante definir el idioma con el que se desea que R y RStudio detecten los caracteres que serán utilizados. El idioma por defecto con el que trabaja el software es el inglés; por tanto no detectará caracteres propios de otros idiomas, como la “ñ” o acentos para el caso del idioma español.

Para cambiar y ajustar el idioma de detección de caracteres al español, se utiliza el siguiente script:

Sys.setlocale("LC_ALL", "Spanish")
## Warning in Sys.setlocale("LC_ALL", "Spanish"): OS reports request to set locale
## to "Spanish" cannot be honored
## [1] ""

Mientras que una manera alternativa para realizar este cambio es mediante otro script:

Sys.setlocale("LC_ALL", "es_MX")
## Warning in Sys.setlocale("LC_ALL", "es_MX"): OS reports request to set locale
## to "es_MX" cannot be honored
## [1] ""

Por otro lado, siempre es importante definir el directorio de trabajo para R y RStudio pues esto le indica al programa el lugar del que extraerá la información básica a la vez, que, será la ubicación en la que guardará todos los objetos (gráficas, dataframe, etc.) deseados.

La definición del directorio de trabajo se realiza mediante una ruta de acceso, en la que se establece la ubicación y el nombre del archivo deseado.

getwd() ## directorio actual
## [1] "/Users/gustavo/Dropbox/R/Rmarkdown"

En el caso de este documento, la carpeta de documentos actual se llama “Rmarkdown”. Allí es donde se guardarán todos los archivos que elabore y guarde con R, así como los archivos que decida subir o cargar al mismo programa.

Pero en caso de que decida cambiar la carpeta de trabajo, y por tanto la ubicación de la carperta contenedora, entonces se debe utilizar el script setwd(), y dentro del parétensis se describe la ruta de acceso de carpetas contenedoras antes de llegar a la carpeta deseada.

Para cambiar el directorio de trabajo:

setwd("~/Dropbox/R/Rmarkdown") ##Esta permite cambiar y definir el directorio deseado
list.files() ##Esta permite enlistar los archivos dentro del directorio
##  [1] "Actividad_1.html"                                      
##  [2] "Actividad_1.Rmd"                                       
##  [3] "Actividad_2_Exploracion_Descripcion.pdf"               
##  [4] "Actividad_2.html"                                      
##  [5] "Actividad_2.Rmd"                                       
##  [6] "Actividad_3_1_.html"                                   
##  [7] "Actividad_3_Estadistica_Descriptiva.pdf"               
##  [8] "Actividad_3-1-.html"                                   
##  [9] "Actividad_3(1).Rmd"                                    
## [10] "actividad_4_inferencia.Rmd"                            
## [11] "Actividad_4. Probabilidad y Distribución Normal.pdf"   
## [12] "Actividad_4._Probabilidad_Distribucion_Normal.pdf"     
## [13] "Actividad_4.html"                                      
## [14] "Actividad_4.Rmd"                                       
## [15] "Actividad_5_Inferencia_Est.docx"                       
## [16] "Actividad_5_Inferencia_Est.html"                       
## [17] "Actividad_5_Inferencia_Est.pdf"                        
## [18] "Actividad_5_Inferencia_Est.Rmd"                        
## [19] "actividad_6_intervalos_confianza.html"                 
## [20] "actividad_6_intervalos_confianza.Rmd"                  
## [21] "Actividad_7_Contingencia_Correlacion.html"             
## [22] "Actividad_7_Contingencia_Correlacion.Rmd"              
## [23] "actividad_correlacion.html"                            
## [24] "actividad_correlacion.Rmd"                             
## [25] "actividad_regresion_lineal_simple.html"                
## [26] "actividad_regresion_lineal_simple.Rmd"                 
## [27] "actividad_regresion_lineal.html"                       
## [28] "actividad_regresion_lineal.Rmd"                        
## [29] "actividad_regresion_logit.html"                        
## [30] "actividad_regresion_logit.Rmd"                         
## [31] "add in ymlthis.png"                                    
## [32] "adiciones a modelos OLS.Rmd"                           
## [33] "adiciones-a-modelos-OLS.html"                          
## [34] "analisis_clusters.html"                                
## [35] "analisis_clusters.Rmd"                                 
## [36] "apa.csl"                                               
## [37] "bibliografia partidos_prueba.bib"                      
## [38] "comandos chunks en rmd.Rmd"                            
## [39] "comandos-chunks-en-rmd.html"                           
## [40] "confidence_intervals_Coursera_2.rmd"                   
## [41] "confidence_intervals_Coursera.rmd"                     
## [42] "diseno yaml.Rmd"                                       
## [43] "diseno-yaml.html"                                      
## [44] "dist_normal.png"                                       
## [45] "dist_z_t.png"                                          
## [46] "distill.png"                                           
## [47] "ha_h0.gif"                                             
## [48] "inf_for_numerical_data.Rmd"                            
## [49] "intervalo_confianza.png"                               
## [50] "intro_MCA.html"                                        
## [51] "intro_MCA.Rmd"                                         
## [52] "intro_pca.html"                                        
## [53] "intro_pca.Rmd"                                         
## [54] "intro_to_data_Coursera.rmd"                            
## [55] "intro_to_r_coursera_2.Rmd"                             
## [56] "intro_to_r_Coursera.Rmd"                               
## [57] "metodologia.bib"                                       
## [58] "papaja.png"                                            
## [59] "poblacion_muestra.png"                                 
## [60] "potencia.png"                                          
## [61] "presentacion_reg_logit_ordinal.html"                   
## [62] "presentacion_reg_logit_ordinal.Rmd"                    
## [63] "probability_Coursera.Rmd"                              
## [64] "prueba chunks.Rmd"                                     
## [65] "prueba de YAML.Rmd"                                    
## [66] "prueba sintax markdown.Rmd"                            
## [67] "prueba_uso_markdown_files"                             
## [68] "prueba_uso_markdown.html"                              
## [69] "prueba_uso_markdown.Rmd"                               
## [70] "prueba-chunks_files"                                   
## [71] "prueba-chunks.html"                                    
## [72] "prueba-de-YAML.html"                                   
## [73] "prueba-de-YAML.pdf"                                    
## [74] "prueba-sintax-markdown.html"                           
## [75] "pruebas_hipotesis_bivariadas.html"                     
## [76] "pruebas_hipotesis_bivariadas.Rmd"                      
## [77] "references.bib"                                        
## [78] "regresion_efectos_fijos.html"                          
## [79] "regresion_efectos_fijos.Rmd"                           
## [80] "regresion_lineal_multiple.html"                        
## [81] "regresion_lineal_multiple.Rmd"                         
## [82] "regresion_lineal_simple_presentacion.html"             
## [83] "regresion_lineal_simple_presentacion.Rmd"              
## [84] "rsconnect"                                             
## [85] "rticles.png"                                           
## [86] "sampling_distributions_Coursera.rmd"                   
## [87] "script_PCA.R"                                          
## [88] "script_reg_lineal.R"                                   
## [89] "sintax_markdown.html"                                  
## [90] "sintax_markdown.Rmd"                                   
## [91] "syllabus sistemas politicos comparados uabc 2022-2.Rmd"
## [92] "syllabus-sistemas-politicos-comparados-uabc-2022-2.pdf"
## [93] "vars_democ_latinob.png"                                
## [94] "ventana_config_basica_yaml.png"                        
## [95] "ventana_plantillas_articulos.png"                      
## [96] "ventana_selec_plantilla_yaml.png"                      
## [97] "zotero1.png"                                           
## [98] "zotero2.png"                                           
## [99] "zotero3.png"

1. Tipos de variables.

Existen distintos tipos de variables que se pueden encontrar y construir en R, a manera de objetos.

Los tipos más comunes de variables en R pueden ser:

1.1. Vector numérico.

Existen distintas maneras para construir estos vectores numéricos: en x1 se crea un objeto con un valor asignado directamente; en x2 se crea un objeto que se integra por una secuencia de números enteros mediante el vínculo :; en x3 se crea un objeto mediante una “concatenación” de objetos pre seleccionados mediante la instrucción c().

x1 <- 1 #objeto con un solo valor
x2 <- 1:10 #objeto de secuencia de valores de 1 a 10
x3 <- c(1, 3, 5, 7, 9, 11) #objeto de valores específicos concatenados
x1
## [1] 1
x2
##  [1]  1  2  3  4  5  6  7  8  9 10
x3
## [1]  1  3  5  7  9 11

Otra manera de construir un vector numérico es a partir de construir una secuencia con el script seq(), en la que se define un valor inicial, un valor final y la distancia que debe existir entre dos valores consecutivos.

x<- seq(1, 10, 0.5)
x
##  [1]  1.0  1.5  2.0  2.5  3.0  3.5  4.0  4.5  5.0  5.5  6.0  6.5  7.0  7.5  8.0
## [16]  8.5  9.0  9.5 10.0

1.2. Vector de caracteres.

También se pueden crear objetos a manera de vectores integrados por caracteres, los que R tiene la posibilidad de reconocer. La especificación de caracteres se realiza mediante el uso de comillas dobles.

x4 <- "primaria" #objeto con un solo caracter
x5 <- c("primaria", "secundaria", "preparatoria", "primaria", "secundaria", "secundaria") #objeto con diversos caracteres concatenados
x6 <- c("si", "no", "si", "si", "no", "no") #objeto con diversos caracteres concatenados
x7 <- c("pan", "pri", "prd", "pt", "pvem", "morena")
x4
## [1] "primaria"
x5
## [1] "primaria"     "secundaria"   "preparatoria" "primaria"     "secundaria"  
## [6] "secundaria"
x6
## [1] "si" "no" "si" "si" "no" "no"
x7
## [1] "pan"    "pri"    "prd"    "pt"     "pvem"   "morena"

1.3. Vector de fechas.

R tiene la capacidad de trabajar con un vector / variable que refieren a fechas. Para ello se debe reconocer el formato en que R estandariza cada observación para las fechas, que es: “yyyy-mm-dd”. Para registrar una fecha en R se debe utilizar el script as.Date() porque, de lo contrario, el software leerá el dato como una variable del tipo “character” y, así, no se podrán realizar las operaciones respectivas con las fechas. Por ejemplo

navidad_2019 <- ("2019-12-25")
navidad_2019
## [1] "2019-12-25"
class(navidad_2019)
## [1] "character"

Utilizando el script as.Date() al guardar la fecha como objeto:

navidad_2019 <- as.Date("2019-12-25")
navidad_2019
## [1] "2019-12-25"
class(navidad_2019)
## [1] "Date"

Aún cuando R guarda las fechas en el mismo formato también es capaz de leer diversos formatos mediante el uso de algunos comandos:

Símbolo Significado
%d día (numérico, de 0 a 31)
%a día de la semana abreviado a tres letras
%A día de la semana (nombre completo)
%m mes (numérico de 0 a 12)
%b mes (nombre abreviado a tres letras)
%B mes (nombre completo)
%y año (con dos dígitos)
%Y año (con cuatro dígitos)
navidad2020 <- as.Date("25/12/2020", format = "%d / %m / %Y")
navidad2020
## [1] "2020-12-25"
navidad2021 <- as.Date("25 December 2021", format = "%d %B %Y") #el nombre del mes está en inglés
navidad2021
## [1] "2021-12-25"

La construcción de un vector de fechas, de la siguiente manera:

dias <- c("1/10/2005","2/2/2006","3/4/2006","8/11/2014")
dias 
## [1] "1/10/2005" "2/2/2006"  "3/4/2006"  "8/11/2014"
class(dias) # Vemos que este vector todavía no es una fecha:  
## [1] "character"

Su transformación en vector de fechas:

dias2 <- as.Date(dias, format = "%d / %m / %Y")
dias2
## [1] "2005-10-01" "2006-02-02" "2006-04-03" "2014-11-08"
class(dias2)
## [1] "Date"

1.4. Vector de categorías numéricas y etiquetas.

El uso de variables categóricas suele ser muy frecuente en las ciencias sociales. En diversas matrices de datos se suelen usar valores numéricos discretos para representar categorías a las que, a su vez, se le vinculan con valores nominales u ordinales. Existen diversas maneras de construir este tipo de variables discretas que representan categorías cualitativas.

Una manera consiste en crear un vector numérico y después asignarle la etiqueta respectiva a cada uno de los valores numéricos.

x8 <- c(0, 1, 0, 1, 0, 0) #objeto con vector numérico
names(x8)<- c("hombre", "mujer", "hombre", "mujer", "hombre", "hombre") #asignación de categorías a cada valor numérico
names(x8)
## [1] "hombre" "mujer"  "hombre" "mujer"  "hombre" "hombre"

Otra manera de construir este tipo de variables discretas con etiquetas categóricas es a partir de las variables tipo “factor” factor(objeto, levels = c(), labels = c()) en R.

x9<- c(0, 1, 0, 1, 0, 0)
x10<- factor(x9, levels = c(0,1),
             labels = c("hombre", "mujer"))
x9
## [1] 0 1 0 1 0 0
x10
## [1] hombre mujer  hombre mujer  hombre hombre
## Levels: hombre mujer

1.5. Data frame.

El “data frame” es un tipo de específico dentro del ambiente de R, que consiste en la reunión de diversos tipos de variables (numéricas, caracteres, fecha, entre otros).

data0 <- data.frame(x3, x5, x6, x7, x8, x9, x10) ##todas las variables incluidas deben tener el mismo número de casos
data0
##   x3           x5 x6     x7 x8 x9    x10
## 1  1     primaria si    pan  0  0 hombre
## 2  3   secundaria no    pri  1  1  mujer
## 3  5 preparatoria si    prd  0  0 hombre
## 4  7     primaria si     pt  1  1  mujer
## 5  9   secundaria no   pvem  0  0 hombre
## 6 11   secundaria no morena  0  0 hombre

Existen, además, otros tipos de objetos “complejos” que R puede guardar y manipular, como objetos del tipo “listas”, “matrices”, entre otros, que se irán conociendo durante el resto del curso.

2. Ejercicio.

  1. Construir un objeto a partir de un vector numérico a partir de una secuencia que inicie con el número 5.5 y termine en el 10, y una distancia de 0.5 entre cada valor.

  2. Construir un objeto con un vector tipo factor de 10 elementos dicotómicos (dos valores posibles solamente), donde uno se asigne con el valor “partido en el gobierno” y otro “partido de la oposición”.

  3. Integrar los dos vectores anteriores (numérico y categórico) en un data frame con dos variables o columnas.