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.getwd()
setwd("C:/Users/salom/Downloads")
datos<-read.table(file="paro.csv", header = T)
datos
head(datos)
tail(datos)
nrow(datos)
summary(datos)
datos2<-read.table(file="paro.csv")
datos2
head(datos2)
tail(datos2)
nrow(datos2)
summary(datos2)
pro_impor_dic_2022 <- read.csv("C:\\Users\\Angel Fabricio\\Downloads\\appb_reporteproductosimportacion_2022_12.csv", header = T,sep = ";")
pro_impor_dic_2022
# Para visualizar los primeros datos
head(pro_impor_dic_2022)
# Para visualizar los ultimos datos
tail(pro_impor_dic_2022)
# Para visualizar el numero de filas
nrow(pro_impor_dic_2022)
summary(pro_impor_dic_2022)
datos4 <- read_tsv("https://datanalytics.com/uploads/datos_treemap.txt.", header = T)
En vista de que la página web asignada no está disponible, haremos la demostración con una página diferente
datos5 <- read.table("http://www.sthda.com/upload/boxplot_format.txt", header = T)
datos5
## Nom variable Group
## 1 IND1 10 A
## 2 IND2 7 A
## 3 IND3 20 A
## 4 IND4 14 A
## 5 IND5 14 A
## 6 IND6 12 A
## 7 IND7 10 A
## 8 IND8 23 A
## 9 IND9 17 A
## 10 IND10 20 A
## 11 IND11 14 A
## 12 IND12 13 A
## 13 IND13 11 B
## 14 IND14 17 B
## 15 IND15 21 B
## 16 IND16 11 B
## 17 IND17 16 B
## 18 IND18 14 B
## 19 IND19 17 B
## 20 IND20 17 B
## 21 IND21 19 B
## 22 IND22 21 B
## 23 IND23 7 B
## 24 IND24 13 B
## 25 IND25 0 C
## 26 IND26 1 C
## 27 IND27 7 C
## 28 IND28 2 C
## 29 IND29 3 C
## 30 IND30 1 C
## 31 IND31 2 C
## 32 IND32 1 C
## 33 IND33 3 C
## 34 IND34 0 C
## 35 IND35 1 C
## 36 IND36 4 C
## 37 IND37 3 D
## 38 IND38 5 D
## 39 IND39 12 D
## 40 IND40 6 D
## 41 IND41 4 D
## 42 IND42 3 D
## 43 IND43 5 D
## 44 IND44 5 D
## 45 IND45 5 D
## 46 IND46 5 D
## 47 IND47 2 D
## 48 IND48 4 D
## 49 IND49 3 E
## 50 IND50 5 E
## 51 IND51 3 E
## 52 IND52 5 E
## 53 IND53 3 E
## 54 IND54 6 E
## 55 IND55 1 E
## 56 IND56 1 E
## 57 IND57 3 E
## 58 IND58 2 E
## 59 IND59 6 E
## 60 IND60 4 E
## 61 IND61 11 F
## 62 IND62 9 F
## 63 IND63 15 F
## 64 IND64 22 F
## 65 IND65 15 F
## 66 IND66 16 F
## 67 IND67 13 F
## 68 IND68 10 F
## 69 IND69 26 F
## 70 IND70 26 F
## 71 IND71 24 F
## 72 IND72 13 F
#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_Analisis")
#Para leer el fichero ya descargado se hará uso de la función read.table.
read.table("Datos_Analisis")