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.
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.
datos<-read.table("C:\\Users\\DETPC\\OneDrive\\Documentos\\3er semestre\\PROGRAMACION\\TRABAJOS GRUPALES\\TALLER 9\\paro.csv",header = T,sep = "")
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
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
Repite el ejercicio anterior eliminando la opción header = TRUE. Examina el resultado y comprueba que, efectivamente, los datos no se han cargado correctamente.
datos2<-read.table("C:\\Users\\DETPC\\OneDrive\\Documentos\\3er semestre\\PROGRAMACION\\TRABAJOS GRUPALES\\TALLER 9\\paro.csv",sep = "")
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
#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
Lee algún fichero de datos de tu interés y repite el ejercicio anterior.
teletrabajo <- read.table("C:\\Users\\DETPC\\OneDrive\\Documentos\\3er semestre\\PROGRAMACION\\TRABAJOS GRUPALES\\TALLER 9\\mdt_teletrabajo_2022junio.csv", header = T,sep = "\t")
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
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")
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
#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
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.
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
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.
download.file(url = "https://datanalytics.com/uploads/datos_treemap.txt",
destfile = "Datos_deber")
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