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.

CREAR SETS DE DATOS

CREAR VECTORES

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)

VISUALIZAR VECTORES

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

UNIR VECTORES EN UNA MATRIZ

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"

UNIR VECTORES EN UN SET DE DATOS (DATAFRAME)

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

Ejercicio 1: Crea una base de datos de 3 filas y 5 columnas, que contenga un variable numerica, otra logica y otra de texto.

IMPORTAR BASES DE DATOS

ESTABLECER DIRECTORIO DE TRABAJO

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.

IMPORTAR BASES DE DATOS

Trabajaremos con la base de datos del Siseve.
R puede trabajar con diversos tipos de archivos (csv, excel, spss, stata, google, dropbox, entre otros)

INSTALAR PAQUETES

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

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

EXPORTAR O GUARDAR BASES DE DATOS

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") 

IMPORTAR O EXPORTAR CON RIO

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

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.