Chapter 13 IMPORTAR DATOS: XLSX, XLS, SAV, DTA, CSV, TXT, ARCHIVOS WEB, ENTRE OTROS.

En este capítulo se mostrará como importar datos desde distintas fuentes como xlsx, xls, sav, dta, csv, txt, archivos web, entre otros. Para esto se usará una variedad de paquetes que tendremos que instalar previamente. Asimismo, uno de los primeros pasos que haremos será de definir nuestro directorio de trabajo.

En el siguiente capítulo veremos como se exportan los datos a las mismas fuentes, con lo cual podremos compartir lo trabajado en el software.

13.1 Directorio de trabajo.

Nuestro directorio de trabajo es la ubicación de donde R podrá cargar y guardar los archivos que nosotros deseemos importar o exportar. Primero para saber en donde se encuentra nuestro directorio de trabajo tendremos que usar la función getwd() el cual nos indica la ruta de nuestro directorio de trabajo.

# Para saber en donde se encuentra nuestro directorio de trabajo. 
getwd()
## [1] "C:/RRRR/R_para_economistas"

Observamos que nuestro directorio de trabajo se encuentra en C:/RRRR/R_para_economistas. Es decir, en esa ruta es donde se cargarán automáticamente nuestros archivos o se exportarán sin especificar ninguna ruta adicional.

Pero esa no es mi carpeta que contiene mis archivos que deseo importar, por lo cual me surge la necesidad de cambiar el directorio de trabajo23. La ruta del directorio de trabajo se cambia con la función setwd(), al interior de los paréntesis se coloca la ruta, en mi caso la ruta está en C:\RRRR\R_para_economistas\Archivos, por lo que tendré que colocar aquello dentro de los paréntesis, pero cambiando los \ por /, esto debido a que R usa el sistema usado por GNU/linux.

# Cambiando la ruta del directorio de trabajo. 
setwd("C:/RRRR/R_para_economistas/Archivos/")

Y en efecto, la ruta del directorio ha cambiado24.

13.2 Importar archivos txt.

Si nosotros deseamos importar archivos de texto ASCII (.txt, .dat, entre otros) usaremos la función read.table(), read.fwf(), fread(), entre otros. En este capítulo mostrarán ejemplos de uso de las funciones read.table() y fread().

13.2.1 Usando la función read.table().

Lo primero que deberíamos de hacer es conocer los argumentos de esta función. Esto lo conseguimos corriendo ?read.table.

El resultado que obtenemos es el siguiente:

read.table(file, header = FALSE, sep = "", quote = "\"'", dec = ".", numerals = c("allow.loss", "warn.loss", "no.loss"), row.names, col.names, as.is = !stringsAsFactors, na.strings = "NA", colClasses = NA, nrows = -1, skip = 0, check.names = TRUE, fill = !blank.lines.skip, strip.white = FALSE, blank.lines.skip = TRUE, comment.char = "#", allowEscapes = FALSE, flush = FALSE, stringsAsFactors = FALSE, fileEncoding = "", encoding = "unknown", text, skipNul = FALSE)

En la siguiente tabla se muestran para que sirve la mayoría de argumentos.

ARGUMENTO DESCRIPCIÓN
file El nombre del archivo entre "", si está en otra carpeta se tendrá que usar la dirección exacta, si la base de datos se encuentra en la web, es decir, cuenta con una url use (http://…)
header Argumento lógico, en donde si es TRUE considera a la primera fila como la que contiene el nombre de las variables.
sep Indica el separador usado en el archivo, algunos ejemplos para usar: "" " " “;” “,” ".
quote Indica los caracteres que se desean usar para los elementos caracteres, algunos ejemplos para usar: "" ’’ .
dec El caracter que se usa para indicar el separador decimal. Puede usar . o , u otro.
row.names El vector en el que se indican el nombre de las filas.
col.names El vector en el que se indican el nombre de las columnas.
as.is Argumento lógico, en donde si es FALSE convierte las variables caracteres en factor.
na.strings El valor con el que se codificará a los datos ausentes, por defecto “NA”.
colClasses Un vector de caracteres que proporciona clases para las columnas.
nrows El número máximo de filas a leer de la base de datos.
skip El numero de filas ignoradas antes de leer la base de datos.
check.names Argumento lógico, en donde si es TRUE verifica que el nombre de las variables son válidos para R.
fill Argumento lógico, en donde si es TRUE y todas las filas no tienen el mismo numero de variables, agrega “blancos”.
strip.white Argumento lógico, en donde si es TRUE borra los espacios en blanco antes y después de las variables de tipo caracter. Dependerá de los que se especifique en “sep”.
blank.lines.skip Argumento lógico, en donde si es TRUE ignora las filas en blanco.
comment.char Caracter que indica comentario en la base de datos. Si una observación comienza con el caracter “#”, R ignorará su lectura. Si se desea desactivar esta función usar comment.char =""

Ahora veremos un ejemplo de como cargar un archivo txt el cual es sobre los votos emitidos en un región de Perú, el cual se llama “voto.txt”.

# Leyendo el archivo txt.
df<-read.table("votos.txt", sep = "\t", header = T)

head(df)
UBIGEO DEPARTAMENTO PROVINCIA DISTRITO TIPO_ELECCION MESA ESTADO_MESA UBICACION_EN_CEDULA TIPO_AGRUPACION CODIGO_AGRUPACION AGRUPACION_POLITICA VOTOS_OBTENIDOS ELECTORES_HABILES VOTOS_BLANCOS VOTOS_NULOS VOTOS_IMPUG
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 6 NACIONAL 120 TODOS POR EL PERU 2 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 12 NACIONAL 121 ACCION POPULAR 4 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 5 NACIONAL 122 ALIANZA PARA EL PROGRESO 1 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 11 NACIONAL 123 AVANZA PAIS - PARTIDO DE INTEGRACION SOCIAL 1 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 7 NACIONAL 126 FRENTE POPULAR AGRICOLA FIA DEL PERU - FREPAP 5 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 10 NACIONAL 128 JUNTOS POR EL PERU 2 254 11 31 0

Importamos el archivo y lo guardamos con el nombre de df. Posteriormente usamos la función head() para poder ver las primeras 6 filas.

13.2.2 Usando la función fread.

Para usar la función fread() se tiene que instalar y cargar el paquete data.table.

# Instalando el paquete. 
install.packages("data.table")

# Cargando el paquete.
library(data.table)

Ahora usamos la función fread() de forma similar a read.table().

# Cargando el archivo "votos.txt"
df<-fread("votos.txt", header=T, verbose=F)

head(df)
UBIGEO DEPARTAMENTO PROVINCIA DISTRITO TIPO_ELECCION MESA ESTADO_MESA UBICACION_EN_CEDULA TIPO_AGRUPACION CODIGO_AGRUPACION AGRUPACION_POLITICA VOTOS_OBTENIDOS ELECTORES_HABILES VOTOS_BLANCOS VOTOS_NULOS VOTOS_IMPUG
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 6 NACIONAL 120 TODOS POR EL PERU 2 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 12 NACIONAL 121 ACCION POPULAR 4 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 5 NACIONAL 122 ALIANZA PARA EL PROGRESO 1 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 11 NACIONAL 123 AVANZA PAIS - PARTIDO DE INTEGRACION SOCIAL 1 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 7 NACIONAL 126 FRENTE POPULAR AGRICOLA FIA DEL PERU - FREPAP 5 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 10 NACIONAL 128 JUNTOS POR EL PERU 2 254 11 31 0

La ventaja de usar la función fread() es que la función asigna el separador automáticamente.

13.3 Importar archivos csv.

Si se desea leer archivos con formato csv, entonces podemos usar las funciones read.csv() o fread(). Haremos lo mismo que cuando importamos archivos txt, lo único que cambiará será el nombre de nuestro archivo. En mi directorio de trabajo cuento con el archivo “votos.csv”, al cual importaré con el siguiente código.

# Leyendo archivo csv.
df<-read.csv("votos.csv", header = T, sep = ";")

head(df)
UBIGEO DEPARTAMENTO PROVINCIA DISTRITO TIPO_ELECCION MESA ESTADO_MESA UBICACION_EN_CEDULA TIPO_AGRUPACION CODIGO_AGRUPACION AGRUPACION_POLITICA VOTOS_OBTENIDOS ELECTORES_HABILES VOTOS_BLANCOS VOTOS_NULOS VOTOS_IMPUG
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 6 NACIONAL 120 TODOS POR EL PERU 2 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 12 NACIONAL 121 ACCION POPULAR 4 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 5 NACIONAL 122 ALIANZA PARA EL PROGRESO 1 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 11 NACIONAL 123 AVANZA PAIS - PARTIDO DE INTEGRACION SOCIAL 1 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 7 NACIONAL 126 FRENTE POPULAR AGRICOLA FIA DEL PERU - FREPAP 5 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 10 NACIONAL 128 JUNTOS POR EL PERU 2 254 11 31 0

La sintaxis fue similar a la que se usó con la función read.table(). En ese sentido, usando la función fread() obtendrá el mismo resultado. Ejercicio que estoy seguro podrá resolver el lector.

13.4 Importar archivos desde excel (xlsx).

Hay una gran variedad de paquetes que nos permiten importar archivos en formato .xlsx. En esta guía se usarán dos: openxlsx y readxl. Cada paquete tiene una ventaja respecto al otro y viceversa. Por un lado el paquete openxlsx solo sirve para archivos de formato “.xlsx”, mientras que el paquete también puede leer archivos “.xls”. Por otro lado, el paquetereadxl tiene dificultades para leer caracteres extraños del archivo excel. Hay más diferencias que usted se podrá ir dando cuenta con el uso que le da y dependerá de lo que desea cargar. Particularmente, tengo una parcialidad hacia el paquete openxlsx, pero eso no significa que el paquete readxl sea innecesario.

En ese sentido, se mostrará ejemplos con cada uno de los paquetes.

13.4.1 Usando el paquete openxlsx.

PRimero tenemos que instalar el paquete y luego cargarlo.

# Instalando el paquete.
install.packages("openxlsx")

Una vez instalado, procedemos a cargarlo.

# Cargando el paquete.
library(openxlsx)

Ahora importaremos nuestros datos que se encuentran en el archivo “votos.xlsx”. Para esto usaremos la función read.xlsx().

# Leyendo archivo xlsx.
df<-read.xlsx("votos.xlsx")

head(df)
UBIGEO DEPARTAMENTO PROVINCIA DISTRITO TIPO_ELECCION MESA ESTADO_MESA UBICACION_EN_CEDULA TIPO_AGRUPACION CODIGO_AGRUPACION AGRUPACION_POLITICA VOTOS_OBTENIDOS ELECTORES_HABILES VOTOS_BLANCOS VOTOS_NULOS VOTOS_IMPUG
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 6 NACIONAL 120 TODOS POR EL PERU 2 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 12 NACIONAL 121 ACCION POPULAR 4 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 5 NACIONAL 122 ALIANZA PARA EL PROGRESO 1 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 11 NACIONAL 123 AVANZA PAIS - PARTIDO DE INTEGRACION SOCIAL 1 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 7 NACIONAL 126 FRENTE POPULAR AGRICOLA FIA DEL PERU - FREPAP 5 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 10 NACIONAL 128 JUNTOS POR EL PERU 2 254 11 31 0

13.4.2 Usando el paquete readxl.

Igualmente tendremos que instalar y cargar el paquete.

# Instalando el paquete. 
install.packages("readxl")
# Cargando el paquete.
library(readxl)

Ahora procedemos a cargar el archivo, para lo cual usaremos el paquete read_xlsx().

# Leyendo archivo .xlsx
df<-read_xlsx("votos.xlsx")

head(df)
UBIGEO DEPARTAMENTO PROVINCIA DISTRITO TIPO_ELECCION MESA ESTADO_MESA UBICACION_EN_CEDULA TIPO_AGRUPACION CODIGO_AGRUPACION AGRUPACION_POLITICA VOTOS_OBTENIDOS ELECTORES_HABILES VOTOS_BLANCOS VOTOS_NULOS VOTOS_IMPUG
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 6 NACIONAL 120 TODOS POR EL PERU 2 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 12 NACIONAL 121 ACCION POPULAR 4 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 5 NACIONAL 122 ALIANZA PARA EL PROGRESO 1 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 11 NACIONAL 123 AVANZA PAIS - PARTIDO DE INTEGRACION SOCIAL 1 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 7 NACIONAL 126 FRENTE POPULAR AGRICOLA FIA DEL PERU - FREPAP 5 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 10 NACIONAL 128 JUNTOS POR EL PERU 2 254 11 31 0

Como usted puede observar hemos obtenido el mismo resultado usando los dos paquetes. Como se mencionó líneas arriba dependerá de usted que paquete usar. Asimismo, para más detalles usted puede ver la documentación de cada una de las funciones lo cual le permitirá resolver dudas muy puntuales.

13.5 Importar archivos desde SPSS.

Si deseamos cargar archivos con extensión “.sav”, entonces usaremos el paquete foreign. Este paquete no solo nos permite leer archivos de SPSS, sino también de STATA y archivos con extensión “.dbf”, que veremos más adelante.

Entonces, lo primero que tenemos que hacer es instalar el paquete.

install.packages("foreign")

Una vez instalado, procedemos a cargar el paquete.

library(foreign)

Ahora cargamos el archivo de extensión “.sav” con la función read.spss().

# Leyendo archivo .sav
df<-read.spss("votos.sav", to.data.frame = T)

head(df)
UBIGEO DEPARTAMENTO PROVINCIA DISTRITO TIPO_ELECCION MESA ESTADO_MESA UBICACION_EN_CEDULA TIPO_AGRUPACION CODIGO_AGRUPACION AGRUPACION_POLITICA VOTOS_OBTENIDOS ELECTORES_HABILES VOTOS_BLANCOS VOTOS_NULOS VOTOS_IMPUG
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 6 NACIONAL 120 TODOS POR EL PERU 2 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 12 NACIONAL 121 ACCION POPULAR 4 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 5 NACIONAL 122 ALIANZA PARA EL PROGRESO 1 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 11 NACIONAL 123 AVANZA PAIS - PARTIDO DE INTEGRACION SOCIAL 1 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 7 NACIONAL 126 FRENTE POPULAR AGRICOLA FIA DEL PERU - FREPAP 5 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 10 NACIONAL 128 JUNTOS POR EL PERU 2 254 11 31 0

En esta función se tiene que especificar el argumento to.data.frame igual a verdadero para que el resultado sea un objeto data frame, sino el resultado será un objeto lista.

13.6 Importar archivos desde STATA.

Para importar archivos con extensión “.dta” nosotros podemos usar dos paquetes: foreign o haven. Nosotros recomendamos usar el paquete haven ya que la función que lee archivos “.dta” lee archivos de versiones superiores25.

Entonces, desarrollaremos el ejemplo de cargar archivos de extensión “.dta” usando el paquete haven. En ese sentido, lo primero que debemos de hacer es instalar el paquete haven.

install.packages("haven")

Procemdos a cargarlo.

library(haven)

Ahora para cargar el archivo “.dta” usaremos la función read_dta().

# Leyendo archivo .dta
df<-read_dta("votos.dta")

head(df)
UBIGEO DEPARTAMENTO PROVINCIA DISTRITO TIPO_ELECCION MESA ESTADO_MESA UBICACION_EN_CEDULA TIPO_AGRUPACION CODIGO_AGRUPACION AGRUPACION_POLITICA VOTOS_OBTENIDOS ELECTORES_HABILES VOTOS_BLANCOS VOTOS_NULOS VOTOS_IMPUG
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 6 NACIONAL 120 TODOS POR EL PERU 2 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 12 NACIONAL 121 ACCION POPULAR 4 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 5 NACIONAL 122 ALIANZA PARA EL PROGRESO 1 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 11 NACIONAL 123 AVANZA PAIS - PARTIDO DE INTEGRACION SOCIAL 1 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 7 NACIONAL 126 FRENTE POPULAR AGRICOLA FIA DEL PERU - FREPAP 5 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 10 NACIONAL 128 JUNTOS POR EL PERU 2 254 11 31 0

13.7 Importar archivos dbf.

Para importar archivos con extensión “.dbf”, se usará el paquete foreign.

Este paquete ya lo hemos instalado y cargado, por lo que solo tendremos que cargar el archivo haciendo uso de la función read.dbf().

# Leyendo archivo .dbf
df<-read.dbf("votos.dbf")

head(df)
UBIGEO DEPARTAMEN PROVINCIA DISTRITO TIPO_ELECC MESA ESTADO_MES UBICACION_ TIPO_AGRUP CODIGO_AGR AGRUPACION VOTOS_OBTE ELECTORES_ VOTOS_BLAN VOTOS_NULO VOTOS_IMPU
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 6 NACIONAL 120 TODOS POR EL PERU 2 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 12 NACIONAL 121 ACCION POPULAR 4 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 5 NACIONAL 122 ALIANZA PARA EL PROGRESO 1 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 11 NACIONAL 123 AVANZA PAIS - PARTIDO DE INTEGRACION SOCIAL 1 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 7 NACIONAL 126 FRENTE POPULAR AGRICOLA FIA DEL PERU - FREPAP 5 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 10 NACIONAL 128 JUNTOS POR EL PERU 2 254 11 31 0

13.8 Importar archivos rds.

Los archivos con extensión “.rds” son archivos de formato propio de R, así que, si el archivo que cargarás proviene de una persona que usó R, entonces es recomendable decirle que te lo comparta con la extensión “.rds”, ya que el archivo no perderá ninguna característica, será similar al que trabajó ese objeto. Por otro lado, si te lo comparte en otra formato, es probable que las columnas que eran texto o integer ahora se conviertan en factor u otros casos.

Como es un archivo de R, no es necesario instalar o cargar ningún paquete. En ese sentido procederemos a importar el archivo con la función readRDS().

# Leyendo archivo .rds
df<-readRDS("votos.rds")

head(df)
UBIGEO DEPARTAMENTO PROVINCIA DISTRITO TIPO_ELECCION MESA ESTADO_MESA UBICACION_EN_CEDULA TIPO_AGRUPACION CODIGO_AGRUPACION AGRUPACION_POLITICA VOTOS_OBTENIDOS ELECTORES_HABILES VOTOS_BLANCOS VOTOS_NULOS VOTOS_IMPUG
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 6 NACIONAL 120 TODOS POR EL PERU 2 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 12 NACIONAL 121 ACCION POPULAR 4 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 5 NACIONAL 122 ALIANZA PARA EL PROGRESO 1 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 11 NACIONAL 123 AVANZA PAIS - PARTIDO DE INTEGRACION SOCIAL 1 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 7 NACIONAL 126 FRENTE POPULAR AGRICOLA FIA DEL PERU - FREPAP 5 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 10 NACIONAL 128 JUNTOS POR EL PERU 2 254 11 31 0

13.9 Importar archivos desde la web.

Para importar archivos desde la web, lo que debemos conocer primero es la extensión del archivo, por ejemplo si en la web encontramos un archivo con la extensión .xlsx, entonces nosotros usaremos la función read.xlsx() del paquete openxlsx.

Veamos un ejemplo, en donde sabemos que el archivo web es de la extensión “.xlsx”. Entonces, lo único que haremos es usar la función read.xlsx() y colocar la url del archivo.

# Leyendo archivo web
df<-read.xlsx("https://datametria.com/wp-content/uploads/2022/01/votos.xlsx")

head(df)
UBIGEO DEPARTAMENTO PROVINCIA DISTRITO TIPO_ELECCION MESA ESTADO_MESA UBICACION_EN_CEDULA TIPO_AGRUPACION CODIGO_AGRUPACION AGRUPACION_POLITICA VOTOS_OBTENIDOS ELECTORES_HABILES VOTOS_BLANCOS VOTOS_NULOS VOTOS_IMPUG
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 6 NACIONAL 120 TODOS POR EL PERU 2 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 12 NACIONAL 121 ACCION POPULAR 4 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 5 NACIONAL 122 ALIANZA PARA EL PROGRESO 1 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 11 NACIONAL 123 AVANZA PAIS - PARTIDO DE INTEGRACION SOCIAL 1 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 7 NACIONAL 126 FRENTE POPULAR AGRICOLA FIA DEL PERU - FREPAP 5 254 11 31 0
110101 JUNIN HUANCAYO HUANCAYO REGIONAL-GOB Y VICEGOB 21751 ACTA NORMAL 10 NACIONAL 128 JUNTOS POR EL PERU 2 254 11 31 0

Y en efecto, podemos ver que el archivo se ha cargado correctamente. Recuerde que debe saber la extensión del archivo que se desea cargar. Otro ejemplo, si es un archivo “.txt” entonces usted usa la función read.table() o fread().

13.10 Temas adicionales.

Para leer archivos hay una gran cantidad de paquetes, algunos son más eficientes que otros u otros tienen más argumentos que lo hacen más completo para cualquier eventualidad, como ejemplo, para cargar archivos: “.txt”, “.csv”, “.rds” usted puede usar el paquete readr que tiene funciones similares a la de R base como: read_table(),read_csv, read_rds(). Estas funciones son más eficientes que las funciones de R base y además el resultado es un objeto tibble que funciona más eficientemente que los data frames. Usted podrá maniobralos mejor si usted conoce el mundo tidyverse. Incluso, si usted realiza bigdata con el paquete sparkly.

R es muy amplio, y diverso para el uso de cualquier tipo de usuario. Así que mi recomendación es usar el paquete o la función que le es más conocida en un inicio. Si su problema no se resuelve con las funciones que conoce, lo más recomedable es buscar la solución en la web. Específicamente en la página stackoverflow que está disponible en varios idiomas. Si usted tiene una duda, es muy probable que otra persona la tuvo antes y en esa página está la solución a esa duda. La comunidad de stackoverflow en español aún es corta, y está en constante de crecimiento. Pero la comunidad en inglés sí es muy pero muy amplia.

Otro forma de obtener datos es usando el método de web scraping, método que estaba en boga hace unos años. Usted también podría usarlo, pero ese tema es ajeno a este manual. También podría usar APIs, pero igual, es ajeno a este manual.

Si quiere conocer sobre esos temas, indagando en la web podrá conseguir un montón de información.


  1. Podría dejar el directorio de trabajo en esa ruta, pero si quisiera importar el archivo que deseo tendría que especificar la ruta del archivo y eso me demoraría más tiempo, ya que tendría que escribir la ruta completa cada vez que deseo cargar un archivo.↩︎

  2. En ejemplos posteriores se mostrará como importar archivos desde otra ruta.↩︎

  3. El paquete foreign solo lee archivos stata de la versión 5 a la 12, mientras que haven lee archivos hasta la versión 16 del stata.↩︎