UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE CIENCIAS ECONÓMICAS

INGENIERÍA EN ESTADÍSTICA

GRUPO 1

Autores: Alexander Jiménez, Ismael Montesdeoca, Saúl Quishpe

Fecha de Publicación: 16/1/2023

Docente: Ing. Francisco Valverde PhD

EJERCICIOS DE EXPORTACIÓN E IMPORTACIÓN DE ARCHIVOS EN R

EJERCICIOS SOBRE TRATAMIENTO DE ARCHIVOS:

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 ellos10.

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.

getwd()
setwd(“..”) # “sube” al directorio padre del actual setwd(“mi_proyecto/src”) # ruta relativa setwd(“c:/users/yo/proyecto”) # ruta absoluta en Windows setwd(“/home/yo/proyecto”) # ruta absoluta en Linux y otros dir() # contenidos del directorio “de trabajo” Una llamada típica a read.table para leer un fichero es así:

datos <- read.table(“data_dir/mi_fichero.csv”, sep = “, header = TRUE) Examinénmosla:

datos es el nombre de la tabla que recibirá la información leída por read.table; de no hacerse la asignación, R se limitará a imprimirlos en la consola. “data_dir/mi_fichero.csv” (¡entrecomillado!) es la ruta del fichero de interés. Se trata de una ruta relativa al directorio de trabajo, que se supone que contiene el subdirectorio data_dir y, dentro de él, el fichero mi_fichero.csv. sep = “ indica que los campos del fichero están separados por tabuladores (sí, el tabulador es . Muchos ficheros tienen campos separados por, además del tabulador, caracteres tales como ,, ;, | u otros. Es necesario indicárselo a R y la manera de averiguar qué separador usa un fichero, si es que no se sabe, es abriéndolo previamente con un editor de texto decente11. header = TRUE indica que la primera fila del fichero contiene los nombres de las columnas. Si olvidas especificarlo y la primera fila del fichero contiene efectivamente el nombre de las columnas, R interpretará estas, erróneamente, como datos. Con una expresión similar a esa, tal vez cambiando el separador, se leen la mayoría de los ficheros de texto habituales. Otras opciones de las muchas que tiene read.table que pueden ser útiles en determinadas ocasiones son:

dec, para indicar el separador de decimales. Por defecto es ., pero en ocasiones hay que cambiarlo a dec = “,” para que interprete correctamente, p.e., el antiguo estándar español (p.e., 67,56 en lugar de 67.56). quote, que indica qué caracter se usa para acotar campos de texto. En algunas ocasiones aparecen campos de texto que contienen apóstrofes (p.e., calle O’Donnell) y la carga de datos puede fracasar de no indicarse quote = ““. Esta expresión desactiva el papel especial de acotación de campos de texto que por defecto tienen las comillas.

Ejercicio 1:

Lee el fichero paro.csv (ARCHIVO ADJUNTO) 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.

getwd()
setwd("F:/descargas")

datos<-read.table(file="paro.csv", header = T)
datos

head(datos)
tail(datos)
nrow(datos)
summary(datos)

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.

datos1<-read.table(file="paro.csv")
datos1

head(datos1)
tail(datos1)
nrow(datos1)
summary(datos1)

Ejercicio 3:

Lee algún fichero de datos de tu interés y repite el ejercicio anterior (CADA GRUPO USARÁ SU ARCHIVO DE PREFERENCIA Y LO EXPLICARÁ EN LA EXPOSICIÓN).

Paso 1: Leer y cargar nuestros datos como un archivo csv separado por ;

martchs <- read.csv("F:/descargas/england-premier-league-matches-2018-to-2019-stats.csv", header = T,sep = ";")
martchs

Paso 2: Explorar objetos

# Para visualizar los primeros datos
head(martchs)
# Para visualizar los ultimos datos
tail(martchs)
# Para visualizar el numero de filas
nrow(martchs) 

Paso 3: Utilizamos summary para obtener estadísticas de nuestra base de datos, tomando en cuenta solo los conjuntos numéricos

summary(martchs)

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.

datos2 <- read.table("https://datanalytics.com/uploads/datos_treemap.txt", header = T)
datos2
##    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 5) y leerlo después.

#Se asignará a una variable el link del fichero, luego se hará uso de la función download.file 
download.file(url = "https://datanalytics.com/uploads/datos_treemap.txt",
              destfile = "Datos")

#Para leer el fichero ya descargado se hará uso de la función read.table.
read.table("Datos")
##       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