Colaborador: Ing. Francisco Valverde P.hD en informática
Por supuesto, no nos vamos a limitar a trabajar con datos de ejemplo provistos por R: queremos utilizar también nuestras propias tablas. En R hay decenas de maneras de importar datos tabulares desde distintas fuentes (Excel, bases de datos, SPSS, etc.) pero la más habitual consiste en leer ficheros de texto con la función read.table.

Existen muchas variantes de ficheros de texto: csv, ficheros separados con tabulador, con y sin encabezamientos, con distintos códigos para representar los nulos, etc. La función read.table es muy flexible y tiene muchos parámetros, casi demasiados, para adaptarse a la mayor parte de ellos.

Antes de comenzar a utilizarla, sin embargo, es necesaria una digresión acerca de directorios y directorios de trabajo. El directorio de trabajo es aquel en el que R busca y escribe ficheros por defecto. Las funciones getwd y setwd permiten, respectivamente, averiguar cuál es y cambiarlo si procede. De todos modos, la mejor manera de especificar el directorio de trabajo en RStudio es usando los menús: Files > More > Set as working directory.

EJERCICIO 1

Lee el fichero paro.csv usando la función read.table.Comprueba que está correctamente importado usando head, tail, nrow, summary, etc.Para leer la tabla necesitarás leer con cierto detenimiento ?read.table.

  1. Leer y cargar nuestros datos como data frame
datos<-read.table("C:\\Users\\DETPC\\OneDrive\\Documentos\\3er semestre\\PROGRAMACION\\TRABAJOS GRUPALES\\TALLER 9\\paro.csv",header = T,sep = "")
  1. Explorar objetos
head(datos) #Para visualizar los primeros datos
##    Gender           Provinces Periodo Situation value
## 1   Males         02 Albacete  2014Q4    active 103.9
## 2 Females         02 Albacete  2014Q4    active  83.5
## 3   Males 03 Alicante/Alacant  2014Q4    active 490.5
## 4 Females 03 Alicante/Alacant  2014Q4    active 398.7
## 5   Males         04 Almería  2014Q4    active 198.5
## 6 Females         04 Almería  2014Q4    active 155.8
tail(datos) #Para visualizar los ultimos datos
##       Gender   Provinces Periodo Situation value
## 8315   Males 50 Zaragoza  2011Q1  inactive 134.3
## 8316 Females 50 Zaragoza  2011Q1  inactive 199.4
## 8317   Males    51 Ceuta  2011Q1  inactive  10.7
## 8318 Females    51 Ceuta  2011Q1  inactive  16.5
## 8319   Males  52 Melilla  2011Q1  inactive   9.1
## 8320 Females  52 Melilla  2011Q1  inactive  15.3
nrow(datos) #Para visualizar el numero de filas
## [1] 8320
  1. Transformamos a factor para usar summary y asi obtener estadísticos de conjuntos numéricos
datos$Gender<- factor(datos$Gender)
datos$Provinces <- factor(datos$Provinces)
datos$Periodo <- factor(datos$Periodo)
datos$Situation<- factor(datos$Situation)
datos$value <- factor(datos$value)
summary(datos)
##      Gender                   Provinces       Periodo              Situation   
##  Females:4160   01 Araba/Ã\201lava    : 160   2011Q1 : 520   active        :1664  
##  Males  :4160   02 Albacete        : 160   2011Q2 : 520   employed      :1664  
##                 03 Alicante/Alacant: 160   2011Q3 : 520   inactive      :1664  
##                 04 Almería        : 160   2011Q4 : 520   never_employed:1664  
##                 05 Ã\201vila          : 160   2012Q1 : 520   unemployed    :1664  
##                 06 Badajoz         : 160   2012Q2 : 520                        
##                 (Other)            :7360   (Other):5200                        
##      value     
##  0.9    :  48  
##  1.3    :  46  
##  0.8    :  44  
##  0.7    :  43  
##  1.6    :  42  
##  (Other):8096  
##  NA's   :   1

EJERCICIO 2

Repite el ejercicio anterior eliminando la opción header = TRUE. Examina el resultado y comprueba que, efectivamente, los datos no se han cargado correctamente.

  1. Leer y cargar nuestros datos como data frame
datos2<-read.table("C:\\Users\\DETPC\\OneDrive\\Documentos\\3er semestre\\PROGRAMACION\\TRABAJOS GRUPALES\\TALLER 9\\paro.csv",sep = "")
  1. Explorar objetos
head(datos2) #Para visualizar los primeros datos
##        V1                  V2      V3        V4    V5
## 1  Gender           Provinces Periodo Situation value
## 2   Males         02 Albacete  2014Q4    active 103.9
## 3 Females         02 Albacete  2014Q4    active  83.5
## 4   Males 03 Alicante/Alacant  2014Q4    active 490.5
## 5 Females 03 Alicante/Alacant  2014Q4    active 398.7
## 6   Males         04 Almería  2014Q4    active 198.5
tail(datos2) #Para visualizar los ultimos datos
##           V1          V2     V3       V4    V5
## 8316   Males 50 Zaragoza 2011Q1 inactive 134.3
## 8317 Females 50 Zaragoza 2011Q1 inactive 199.4
## 8318   Males    51 Ceuta 2011Q1 inactive  10.7
## 8319 Females    51 Ceuta 2011Q1 inactive  16.5
## 8320   Males  52 Melilla 2011Q1 inactive   9.1
## 8321 Females  52 Melilla 2011Q1 inactive  15.3
nrow(datos2) #Para visualizar el numero de filas
## [1] 8321
  1. Transformamos a factor para usar summary para obtener estadísticos de conjuntos numéricos
#datos2$Gender<- factor(datos2$Gender)
#datos2$Provinces <- factor(datos2$Provinces)
#datos2$Periodo <- factor(datos2$Periodo)
#datos2$Situation<- factor(datos2$Situation)
#datos2$value <- factor(datos2$value)
summary(datos2)
##       V1                 V2                 V3                 V4           
##  Length:8321        Length:8321        Length:8321        Length:8321       
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##       V5           
##  Length:8321       
##  Class :character  
##  Mode  :character

NOTA: Los datos no se pasan correctamente y por lo tanto no podemos utilizar summary

EJERCICIO 3

Lee algún fichero de datos de tu interés y repite el ejercicio anterior.

  1. Leer y cargar nuestros datos como data frame
teletrabajo <- read.table("C:\\Users\\DETPC\\OneDrive\\Documentos\\3er semestre\\PROGRAMACION\\TRABAJOS GRUPALES\\TALLER 9\\mdt_teletrabajo_2022junio.csv", header = T,sep = "\t")
  1. Explorar objetos
head(teletrabajo) #Para visualizar los primeros datos
##   motivo_teletrabajo   genero provincia_contrato  estado
## 1          Emergente Femenino          PICHINCHA Vigente
## 2          Emergente Femenino          PICHINCHA Vigente
## 3          Emergente Femenino          PICHINCHA Vigente
## 4          Emergente Femenino             GUAYAS Vigente
## 5          Emergente Femenino          PICHINCHA Vigente
## 6          Emergente Femenino          PICHINCHA Vigente
##   año_fecha_inicio_teletrabajo canton_contrato estado_teletrabajo
## 1                         2017           QUITO             Activo
## 2                         2018           QUITO             Activo
## 3                         2018           QUITO             Activo
## 4                         2019       GUAYAQUIL             Activo
## 5                         2019           QUITO             Activo
## 6                         2019           QUITO             Activo
##    fecha_consulta mes_fecha_inicio_teletrabajo número_contratos
## 1 01/07/2022 4:48                            1                1
## 2 01/07/2022 4:48                            4                1
## 3 01/07/2022 4:48                           11                1
## 4 01/07/2022 4:48                            2                4
## 5 01/07/2022 4:48                            2               24
## 6 01/07/2022 4:48                            2                1
tail(teletrabajo) #Para visualizar los ultimos datos
##       motivo_teletrabajo    genero provincia_contrato     estado
## 46343           Habitual Masculino              AZUAY Finalizado
## 46344           Habitual Masculino          PICHINCHA Finalizado
## 46345           Habitual Masculino          PICHINCHA Finalizado
## 46346           Habitual Masculino          PICHINCHA Finalizado
## 46347           Habitual Masculino          PICHINCHA Finalizado
## 46348           Habitual Masculino          PICHINCHA Finalizado
##       año_fecha_inicio_teletrabajo canton_contrato estado_teletrabajo
## 46343                         2022          CUENCA             Activo
## 46344                         2022           QUITO             Activo
## 46345                         2022           QUITO             Activo
## 46346                         2022           QUITO             Activo
## 46347                         2022           QUITO             Activo
## 46348                         2022           QUITO             Activo
##        fecha_consulta mes_fecha_inicio_teletrabajo número_contratos
## 46343 01/07/2022 4:48                            5                1
## 46344 01/07/2022 4:48                            5                1
## 46345 01/07/2022 4:48                            5                7
## 46346 01/07/2022 4:48                            5                2
## 46347 01/07/2022 4:48                            5                1
## 46348 01/07/2022 4:48                            5                3
nrow(teletrabajo) #Para visualizar el numero de filas
## [1] 46348
  1. Transformamos a factor para usar summary y asi obtener estadísticos de conjuntos numéricos
teletrabajo$provincia_contrato <- factor(teletrabajo$provincia_contrato)
teletrabajo$motivo_teletrabajo <- factor(teletrabajo$motivo_teletrabajo)
teletrabajo$genero <- factor(teletrabajo$genero)
teletrabajo$estado <- factor(teletrabajo$estado)
teletrabajo$canton_contrato <- factor(teletrabajo$canton_contrato)

summary(teletrabajo)
##  motivo_teletrabajo       genero       provincia_contrato        estado     
##  Emergente:33248    Femenino :23469   PICHINCHA :20809    Finalizado:22577  
##  Habitual :13100    Masculino:22879   GUAYAS    :12266    Vigente   :23771  
##                                       AZUAY     : 2676                      
##                                       MANABI    : 1821                      
##                                       EL ORO    : 1418                      
##                                       TUNGURAHUA: 1139                      
##                                       (Other)   : 6219                      
##  año_fecha_inicio_teletrabajo  canton_contrato  estado_teletrabajo
##  Length:46348                 QUITO    :19949   Length:46348      
##  Class :character             GUAYAQUIL:10866   Class :character  
##  Mode  :character             CUENCA   : 2536   Mode  :character  
##                               AMBATO   : 1039                     
##                               MACHALA  : 1000                     
##                               MANTA    :  951                     
##                               (Other)  :10007                     
##  fecha_consulta     mes_fecha_inicio_teletrabajo número_contratos 
##  Length:46348       Min.   : 1.000               Min.   :  1.000  
##  Class :character   1st Qu.: 3.000               1st Qu.:  1.000  
##  Mode  :character   Median : 3.000               Median :  1.000  
##                     Mean   : 4.592               Mean   :  3.485  
##                     3rd Qu.: 6.000               3rd Qu.:  3.000  
##                     Max.   :12.000               Max.   :611.000  
##                     NA's   :6838

ARCHIVO MAL IMPORTADO 1. Leer y cargar nuestros datos como data frame

teletrabajo2 <- read.table("C:\\Users\\DETPC\\OneDrive\\Documentos\\3er semestre\\PROGRAMACION\\TRABAJOS GRUPALES\\TALLER 9\\mdt_teletrabajo_2022junio.csv",sep = "\t")
  1. Explorar objetos
head(teletrabajo2) #Para visualizar los primeros datos
##                   V1       V2                  V3      V4
## 1 motivo_teletrabajo   genero provincia_contrato   estado
## 2          Emergente Femenino           PICHINCHA Vigente
## 3          Emergente Femenino           PICHINCHA Vigente
## 4          Emergente Femenino           PICHINCHA Vigente
## 5          Emergente Femenino              GUAYAS Vigente
## 6          Emergente Femenino           PICHINCHA Vigente
##                             V5              V6                 V7
## 1 año_fecha_inicio_teletrabajo canton_contrato estado_teletrabajo
## 2                         2017           QUITO             Activo
## 3                         2018           QUITO             Activo
## 4                         2018           QUITO             Activo
## 5                         2019       GUAYAQUIL             Activo
## 6                         2019           QUITO             Activo
##                V8                           V9              V10
## 1  fecha_consulta mes_fecha_inicio_teletrabajo número_contratos
## 2 01/07/2022 4:48                            1                1
## 3 01/07/2022 4:48                            4                1
## 4 01/07/2022 4:48                           11                1
## 5 01/07/2022 4:48                            2                4
## 6 01/07/2022 4:48                            2               24
tail(teletrabajo2) #Para visualizar los ultimos datos
##             V1        V2        V3         V4   V5     V6     V7
## 46344 Habitual Masculino     AZUAY Finalizado 2022 CUENCA Activo
## 46345 Habitual Masculino PICHINCHA Finalizado 2022  QUITO Activo
## 46346 Habitual Masculino PICHINCHA Finalizado 2022  QUITO Activo
## 46347 Habitual Masculino PICHINCHA Finalizado 2022  QUITO Activo
## 46348 Habitual Masculino PICHINCHA Finalizado 2022  QUITO Activo
## 46349 Habitual Masculino PICHINCHA Finalizado 2022  QUITO Activo
##                    V8 V9 V10
## 46344 01/07/2022 4:48  5   1
## 46345 01/07/2022 4:48  5   1
## 46346 01/07/2022 4:48  5   7
## 46347 01/07/2022 4:48  5   2
## 46348 01/07/2022 4:48  5   1
## 46349 01/07/2022 4:48  5   3
nrow(teletrabajo2) #Para visualizar el numero de filas
## [1] 46349
  1. Transformamos a factor para usar summary y asi obtener estadísticos de conjuntos numéricos
#teletrabajo2$provincia_contrato <- factor(teletrabajo2$provincia_contrato)
#teletrabajo2$motivo_teletrabajo <- factor(teletrabajo2$motivo_teletrabajo)
#teletrabajo2$genero <- factor(teletrabajo2$genero)
#teletrabajo2$estado <- factor(teletrabajo2$estado)
#teletrabajo2$canton_contrato <- factor(teletrabajo2$canton_contrato)

summary(teletrabajo2)
##       V1                 V2                 V3                 V4           
##  Length:46349       Length:46349       Length:46349       Length:46349      
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##       V5                 V6                 V7                 V8           
##  Length:46349       Length:46349       Length:46349       Length:46349      
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##       V9                V10           
##  Length:46349       Length:46349      
##  Class :character   Class :character  
##  Mode  :character   Mode  :character

EJERCICIO 4

En read.table y sus derivados puedes indicar, además de ficheros disponibles en el disco duro, la URL de uno disponible en internet. Prueba a leer directamente el fichero disponible en https://datanalytics.com/uploads/datos_treemap.txt. Nota: es un fichero de texto separado por tabuladores y con nombres de columna.

  1. Leer y cargar nuestros datos como data frame
datos11<-read.table( "https://datanalytics.com/uploads/datos_treemap.txt", sep = "\t",header = T)
datos11
##    valor   cap   div
## 1    ABE  7793 12.04
## 2    ABG  1473  1.23
## 3    ACS  7930  8.13
## 4    ACX  2217  5.06
## 5    AMS  5910  2.27
## 6    ANA  3760  5.24
## 7   BBVA 24819  8.34
## 8    BKT  1646  5.85
## 9    BME  1589 10.38
## 10  CABK 11644  6.48
## 11   ELE 17215  3.08
## 12   ENG  3092  6.47
## 13   EVA  1971  6.70
## 14   FCC  2026  8.99
## 15   FER  5780  5.33
## 16   GAM   838  0.20
## 17   GAS 11022  7.24
## 18   GRF  2978    NA
## 19   IBE 25989  7.51
## 20  ICAG  3193    NA
## 21   IDR  1904  5.86
## 22   ITX 36571  2.39
## 23   MAP  6446  7.17
## 24   MTS 20577  1.82
## 25   OHL  1721  2.84
## 26   POP  4392  5.58
## 27   REE  4239  5.98
## 28   REP 22885  5.60
## 29   SAB  3433  5.67
## 30   SAN 44430 11.38
## 31   SYV  1823  2.32
## 32   TEF 57917 11.03
## 33   TL5  1652  8.62
## 34   TRE  1336  5.61

EJERCICIO 5

Alternativamente, si quieres leer un fichero remoto, puedes descargarlo directamente desde R. Consulta la ayuda de download.file para bajarte al disco duro el fichero del ejercicio anterior (EJERCICIO 4) y leerlo después.

  1. Descargar el Archivo
download.file(url = "https://datanalytics.com/uploads/datos_treemap.txt",
              destfile = "Datos_deber")
  1. Leer y cargar nuestros datos como data frame
read.table("Datos_deber")
##       V1    V2    V3
## 1  valor   cap   div
## 2    ABE  7793 12.04
## 3    ABG  1473  1.23
## 4    ACS  7930  8.13
## 5    ACX  2217  5.06
## 6    AMS  5910  2.27
## 7    ANA  3760  5.24
## 8   BBVA 24819  8.34
## 9    BKT  1646  5.85
## 10   BME  1589 10.38
## 11  CABK 11644  6.48
## 12   ELE 17215  3.08
## 13   ENG  3092  6.47
## 14   EVA  1971   6.7
## 15   FCC  2026  8.99
## 16   FER  5780  5.33
## 17   GAM   838   0.2
## 18   GAS 11022  7.24
## 19   GRF  2978  <NA>
## 20   IBE 25989  7.51
## 21  ICAG  3193  <NA>
## 22   IDR  1904  5.86
## 23   ITX 36571  2.39
## 24   MAP  6446  7.17
## 25   MTS 20577  1.82
## 26   OHL  1721  2.84
## 27   POP  4392  5.58
## 28   REE  4239  5.98
## 29   REP 22885   5.6
## 30   SAB  3433  5.67
## 31   SAN 44430 11.38
## 32   SYV  1823  2.32
## 33   TEF 57917 11.03
## 34   TL5  1652  8.62
## 35   TRE  1336  5.61