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.