#COMANDOS BASES PARA PROGRAMAR EN RSTUDIO: 1) alt+ ctrl+i: chunk, 2)alt+ (-)
#Funciones - Paquetes - Mundo
#Paquetes #¿Qué son? #Un conjunto funciones, pero también bases de datos y objetos de R en general. #Para qué nos sirven? #Ayudan a incorporar funcionalidades al lenguaje para resolver nuevos problemas o alternativas a viejas soluciones
#TIDYVERSE es una colección de paquetes de R, pensados para trabajar en “ciencia de datos”.
#instalo los paquetes con los que voy a trabajar
install.packages("tidyverse")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.3'
## (as 'lib' is unspecified)
#cargo el paquete dentro de mi proyecto
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.0 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
#cargo los datos En R, las tablas son llamadas dataframes. El dataframe es el objeto por excelencia del análisis de datos. Enconcepto, es muy similar a una tabla de Excel; al fin y al cabo, ambos formatos guardan información en celdas identificadas por fila y columna.
mortalidad <- read.csv('https://bitsandbricks.github.io/data/mortalidad_infantil_caba_2016.csv')
mortalidad
## Comuna Tasa2016
## 1 1 9.5
## 2 2 3.6
## 3 3 8.0
## 4 4 11.9
## 5 5 8.5
## 6 6 2.4
## 7 7 8.5
## 8 8 9.7
## 9 9 10.1
## 10 10 3.6
## 11 11 6.2
## 12 12 7.1
## 13 13 4.5
## 14 14 3.2
## 15 15 6.4
#Exploro el dataframe, por ejemplo uso las funciones dim (cantidad de filas y columnas) o name ( como se llama cada fila y columna)
dim(mortalidad)
## [1] 15 2
names(mortalidad)
## [1] "Comuna" "Tasa2016"
#usando el paquete activo, realizo el primer grafico usando la herramienta ggplot y ordeno las columnas en los ejes X e Y
ggplot(mortalidad) +
geom_col(aes(x = factor(Comuna), y = Tasa2016))
0.0
## [1] 0
#Necesito ver un analisis espacial.
#busco un archivo con información espacial de la CABA, conocidos como “shapefiles”.
install.packages("sf")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.3'
## (as 'lib' is unspecified)
library(sf)
## Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1; sf_use_s2() is TRUE
comunas <- st_read('https://bitsandbricks.github.io/data/CABA_comunas.geojson')
## Reading layer `CABA_comunas' from data source
## `https://bitsandbricks.github.io/data/CABA_comunas.geojson'
## using driver `GeoJSON'
## Simple feature collection with 15 features and 4 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -58.53152 ymin: -34.70529 xmax: -58.33514 ymax: -34.52754
## Geodetic CRS: WGS 84
ggplot(comunas) +
geom_sf()
#ordeno la informaion por colores
ggplot(comunas) +
geom_sf(aes(fill = comunas))
#carga la Av Rivadavia para diferencia norte y sur
rivadavia <- st_read('https://bitsandbricks.github.io/data/avenida_rivadavia.geojson')
## Reading layer `avenida_rivadavia' from data source
## `https://bitsandbricks.github.io/data/avenida_rivadavia.geojson'
## using driver `GeoJSON'
## Simple feature collection with 1 feature and 1 field
## Geometry type: LINESTRING
## Dimension: XY
## Bounding box: xmin: -58.53014 ymin: -34.63946 xmax: -58.37017 ymax: -34.60711
## Geodetic CRS: WGS 84
ggplot(comunas) +
geom_sf(aes(fill = comunas)) +
geom_sf(data = rivadavia, color = "red")
#crear una lista con los atributos, y agregarla a nuestro dataframe como una nueva columna.
nueva_columna <- c("Sur", "Norte", "Sur", "Sur", "Sur", "Norte", "Sur", "Sur",
"Sur", "Norte", "Norte", "Norte", "Norte", "Norte", "Norte")
nueva_columna
## [1] "Sur" "Norte" "Sur" "Sur" "Sur" "Norte" "Sur" "Sur" "Sur"
## [10] "Norte" "Norte" "Norte" "Norte" "Norte" "Norte"
#la cargamos en el datafreme
comunas <- mutate(comunas, ubicacion = nueva_columna)
head(comunas)
## Simple feature collection with 6 features and 5 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -58.4627 ymin: -34.6625 xmax: -58.33514 ymax: -34.56935
## Geodetic CRS: WGS 84
## barrios
## 1 CONSTITUCION - MONSERRAT - PUERTO MADERO - RETIRO - SAN NICOLAS - SAN TELMO
## 2 RECOLETA
## 3 BALVANERA - SAN CRISTOBAL
## 4 BARRACAS - BOCA - NUEVA POMPEYA - PARQUE PATRICIOS
## 5 ALMAGRO - BOEDO
## 6 CABALLITO
## perimetro area comunas geometry ubicacion
## 1 35572.65 17802807 1 MULTIPOLYGON (((-58.36854 -... Sur
## 2 21246.61 6140873 2 MULTIPOLYGON (((-58.39521 -... Norte
## 3 10486.26 6385991 3 MULTIPOLYGON (((-58.41192 -... Sur
## 4 36277.44 21701236 4 MULTIPOLYGON (((-58.3552 -3... Sur
## 5 12323.47 6660526 5 MULTIPOLYGON (((-58.41287 -... Sur
## 6 10990.96 6851029 6 MULTIPOLYGON (((-58.43061 -... Norte
#Mapeamos
ggplot(comunas) +
geom_sf(aes(fill = ubicacion)) +
geom_sf(data = rivadavia, color = "red")
#Seguimos transformando la informacion y aprovechando que lista las comunas en el mismo orden (del 1 al 15) y por lo tanto podemos “pegarle” el mismo vector de etiquetas con ubicación que ya preparamos.
mortalidad <- mutate(mortalidad, ubicación = nueva_columna)
head(mortalidad)
## Comuna Tasa2016 ubicación
## 1 1 9.5 Sur
## 2 2 3.6 Norte
## 3 3 8.0 Sur
## 4 4 11.9 Sur
## 5 5 8.5 Sur
## 6 6 2.4 Norte
#MAPEAMOS
ggplot(comunas) +
geom_sf(aes(fill = mortalidad$Tasa2016)) +
geom_sf(data = rivadavia, color = "red") +
scale_fill_distiller(palette = "Spectral")
#mostramos la informacion espacial en un grafico de barras
ggplot(mortalidad) +
geom_col(aes(x = Comuna, y = Tasa2016, fill = ubicación)) +
labs(title = "Mortalidad infantil en la Ciudad Autónoma de Buenos Aires",
subtitle = "Año 2016",
y = "tasa")
comunas_al_sur <- filter(mortalidad, ubicación == "Sur")
comunas_al_norte <- filter(mortalidad, ubicación == "Norte")
mean(comunas_al_sur$Tasa2016) / mean(comunas_al_norte$Tasa2016)
## [1] 2.044788
#En base a lo que descubrimos, vamos a responder en forma sucinta:
#en resumen, para importar, leer y escribir archivos en formatos utilizados por otros programas estadísticos:
#read_sas() –> SAS
#read_sav() –> SPSS
#read_dta() –> STATA
#EJERCICIO PARA LA SEMANA QUE VIENE