Generalmente en R trabajaremos con data secundaria y con grandes
bases de datos. Sin embargo, antes de empezar a importar bases de datos
debemos entender la logica de los datasets.
En R, tenemos vectores, matrices, data.frames y listas.
Un vector es una coleccion de uno o mas datos del mismo tipo. Un vector puede incluir datos numericos, datos en texto o datos logicos (verdadero/falso).
Vector de cadena de texto
pais=c("Bolivia", "Colombia", "Ecuador", "Peru", "Argentina", "Brasil", "Chile", "Paraguay", "Uruguay")
Vector numerico
hab2022_millones=c(12.22, 51.87, 18, 34.05, 46.23, 215.3, 19.6, 6.8, 3.4)
Vector logico
miembro_CAN=c(TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE)
Para observar los vectores que hemos creado podemos colocar el nombre
de los vectores creados (pais,
hab2022_millones, miembro_CAN) o utilizar la
funcion print.
pais
## [1] "Bolivia" "Colombia" "Ecuador" "Peru" "Argentina" "Brasil"
## [7] "Chile" "Paraguay" "Uruguay"
print(hab2022_millones)
## [1] 12.22 51.87 18.00 34.05 46.23 215.30 19.60 6.80 3.40
Los vectores pueden unirse en una matriz
datosA <-cbind(pais, hab2022_millones, miembro_CAN) # cbind() une vectores, interpretando cada uno como una columna
datosA
## pais hab2022_millones miembro_CAN
## [1,] "Bolivia" "12.22" "TRUE"
## [2,] "Colombia" "51.87" "TRUE"
## [3,] "Ecuador" "18" "TRUE"
## [4,] "Peru" "34.05" "TRUE"
## [5,] "Argentina" "46.23" "FALSE"
## [6,] "Brasil" "215.3" "FALSE"
## [7,] "Chile" "19.6" "FALSE"
## [8,] "Paraguay" "6.8" "FALSE"
## [9,] "Uruguay" "3.4" "FALSE"
datosB <-rbind(pais, hab2022_millones, miembro_CAN) # rbind() une vectores, interpretando cada uno como una fila
datosB
## [,1] [,2] [,3] [,4] [,5] [,6]
## pais "Bolivia" "Colombia" "Ecuador" "Peru" "Argentina" "Brasil"
## hab2022_millones "12.22" "51.87" "18" "34.05" "46.23" "215.3"
## miembro_CAN "TRUE" "TRUE" "TRUE" "TRUE" "FALSE" "FALSE"
## [,7] [,8] [,9]
## pais "Chile" "Paraguay" "Uruguay"
## hab2022_millones "19.6" "6.8" "3.4"
## miembro_CAN "FALSE" "FALSE" "FALSE"
Finalmente, podemos crear datasets uniendo vectores.
Los dataframes, a diferencia de las matrices, permiten crear bases con
datos de diferentes tipos (numericos, caracteres, factores, etc.)
datosC<- data.frame(pais, hab2022_millones, miembro_CAN)
datosC
## pais hab2022_millones miembro_CAN
## 1 Bolivia 12.22 TRUE
## 2 Colombia 51.87 TRUE
## 3 Ecuador 18.00 TRUE
## 4 Peru 34.05 TRUE
## 5 Argentina 46.23 FALSE
## 6 Brasil 215.30 FALSE
## 7 Chile 19.60 FALSE
## 8 Paraguay 6.80 FALSE
## 9 Uruguay 3.40 FALSE
Tambien podemos crear un dataset desde cero
datosD <-data.frame(pais=c("Bolivia", "Colombia", "Ecuador", "Peru", "Argentina", "Brasil", "Chile", "Paraguay", "Uruguay"), hab2022_millones=c(12.22, 51.87, 18, 34.05, 46.23, 215.3, 19.6, 6.8, 3.4), miembro_CAN=c(TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE))
datosD
## pais hab2022_millones miembro_CAN
## 1 Bolivia 12.22 TRUE
## 2 Colombia 51.87 TRUE
## 3 Ecuador 18.00 TRUE
## 4 Peru 34.05 TRUE
## 5 Argentina 46.23 FALSE
## 6 Brasil 215.30 FALSE
## 7 Chile 19.60 FALSE
## 8 Paraguay 6.80 FALSE
## 9 Uruguay 3.40 FALSE
Para entender las diferencias entre data.frame y
cbind, podemos usar el comando class (que nos
permite ver el “tipo” de datos)
class(datosA) # matriz
## [1] "matrix" "array"
class(datosC) # data.frame
## [1] "data.frame"
class(datosC$miembro_CAN) #data.frame
## [1] "logical"
Ejercicio 1: Crea una base de datos de 3 filas y 5 columnas, que contenga un variable numerica, otra logica y otra de texto.
Cuando trabajamos en R es importante definir cual sera nuestro
espacio de trabajo (la carpeta en la que trabajaremos y se almacenaran
nuestras BD, imagenes, etc.) getwd() muestra el directorio
de trabajo actual, mientras que setwd()indica el directorio
donde trabajaremos.
getwd() # muestra el directorio de trabajo actual
## [1] "C:/Users/user/Documents/Trabajo/Docencia/UNMSM CCPP Estadistica/Laboratorios/LABs UNMSM/Laboratorio1"
setwd("C:/Users/user/Documents/Trabajo/Docencia/UNMSM CCPP Estadistica/Laboratorios/LABs UNMSM/Laboratorio1") #indica el directorio de trabajo donde quiero trabajar.
Trabajaremos con la base de datos del Siseve.
R puede trabajar con diversos tipos de archivos (csv, excel, spss,
stata, google, dropbox, entre otros)
Para importar/exportar algunos formatos es necesario instalar y abrir
algunos paquetes.
En caso no se encuentren disponibles podras instalarlos con
install.packages(""). Podemos guardarlo en formatos
diferentes al original
Los paquetes que te permitiran abrir archivos en diferentes formatos
son: openxlsx (para archivos en xlsx),
readxl (para archivos en xlsx), haven
(para archivos de stata y spss), rio (para
archivos en diferentes formatos) entre otros.
El comando para abrir archivos delimitados por comas (.csv) es
read.csv("nombredebase.csv"), de spss es
read_spss("nombredebase.sav"), de stata es
read_dta("nombredebase.dta")
En este caso importaremos un documento en formato excel (.xlsx).
Importar archivos excel. En este caso, importaremos nuestra base de datos que esta en excel.
library("readxl") #abre archivos en excel
## Warning: package 'readxl' was built under R version 4.1.3
siseve <- read_excel("Siseve2023.xlsx") # debo colocar el nombre de la base de datos tal como se encuentra guardado
Los comandos para guardar archivos en diferentes formatos son:
write.csv(nombredebaseenR, "nombredebase.csv"),
write_save(nombredebaseenR, "nombredebase.sav"),
write_dta(nombredebaseenR, "nombredebase.dta")
En este caso exportaremos el documento a un formato en excel
(.xlsx).
write.xlsx(siseve, file="siseve.xlsx")
El paquete rio nos permite importar y exportar archivos
de diverso tipo de manera mas directa
library(rio)
siseve_xslx=import("Siseve2023.xlsx") # notar que con rio cambia la estructura del codigo
export(siseve_xslx, "siseve2.sav")
Ejercicio 2: Descarga una base de datos de la Plataforma Nacional de Datos Abiertos - Peru. Importa la base de datos a R y exportala en un formato diferente al original.