Parte 01.

Definición variables

var1 = 10
var2 <- 30
var3 <- "prueba"
var1 + var2
## [1] 40

Funciones ejemplo

mi_funcion <- function(a,b) {
  c = a+b
  d = c*10
  return(d)
}
mi_funcion(10,30)
## [1] 400

Instalar y llamar librerías

install.packages("tidyverse")#Sirve para instalar librerias
## Installing package into 'C:/Users/MARCELO/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
## Error in contrib.url(repos, "source"): trying to use CRAN without setting a mirror
library(tidyverse)#Sirve para llamar librerias
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.2     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ✔ purrr     1.0.1
## ── 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
install.packages("readxl")
## Installing package into 'C:/Users/MARCELO/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
## Error in contrib.url(repos, "source"): trying to use CRAN without setting a mirror
library(readxl)

Metricas

v = c(10,20,30,40,50,60)

mean(v)#media
## [1] 35
sd(v)#desviacion estándar
## [1] 18.70829
max(v)#maximo
## [1] 60
min(v)#minimo
## [1] 10
summary(v)#devuelves varias metricas resumenes a la vez
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    10.0    22.5    35.0    35.0    47.5    60.0

Ejemplo

a=11
 mi_funcion <- function(a,b) {
   c= a+b
   d=c*10
   return(d)
}
mi_funcion(10,30)
## [1] 400
mi_funcion(20,40)
## [1] 600

Leer ficheros (buscar directorio/cambiar directorio)

#getwd()#Directorio actual de trabajo
#setwd()#Escribir directorio donde deseamos que se guarde nuestro documento 
#view()#Visualizar datos

Ordenar datos

#select()#Sirve para seleecionar columnas de una tabla
#head()#Devuelve las primeras filas
#filter()#Sirve para seleccionar filas  

Combinar select & filter usando el Pipe (%>%)

#paises %>%
  #filter(continete == "Europa") %>%
  #select(pais, anio, poblacion)

Arrange

#paises %>% 
  #arrange(poblacion)

Parte 02.

Relacionando datos de fuetes distintas

LLaves primarias: por lo menos una columna en común, para poder efectuarse la intersección.

Intersección

  • Inner join: Intersección de datos
  • Left Join: Todos los valores de la tabla de la izquierda, y de la derecha solo los que tiene interseccion con la izquierda.
  • Right Join: Todos los valores de la tabla de la derecha, y de la izquierda solo los que tiene interseccion con la derecha.
  • Full Join: Todos los valores de la tabla de la izquierda, y de la derecha.

Importar tablas

tab1<-read_excel("tabla_azul.xlsx", sheet = 1)
tab2<-read_excel("tabla_verde.xlsx", sheet = 1)
head(tab1)
head(tab2)

Realizar joins entre tablas

#left join
tab1 %>% left_join(tab2,
                   by = c("ID" = "ID"))
#right join
tab1  %>% right_join(tab2,
                     by = c("ID" = "ID"))
#inner join
tab1 %>% inner_join(tab2,
                    by = c("ID" = "ID"))
#full join
tab1 %>% full_join(tab2,
                   by = c ("ID"="ID"))

Parte 03

Poblacion<-read_excel("poblacion_catalunya.xlsx", sheet = 1)
Positivos<-read_excel("positivos_covid_catalunya.xlsx", sheet = 1)
#install.packages("dplyr")
#library(dplyr)
#Inner Join
Poblacion %>% inner_join(Positivos,
                         by=c("RegionSanitariaCodigo"="RegionSanitariaCodigo",
                         "ABSCodigo"="ABSCodigo","Sexo"="Sexo"))
#Full Join
pob_casos = Poblacion %>% full_join(Positivos,
                         by=c("RegionSanitariaCodigo"="RegionSanitariaCodigo",
                              "ABSCodigo"="ABSCodigo","Sexo"="Sexo"))


#Left Join
pob_casos= Poblacion %>% left_join(Positivos,
                        by=c("RegionSanitariaCodigo"="RegionSanitariaCodigo",
                             "ABSCodigo"="ABSCodigo","Sexo"="Sexo")) 
#Right Join
pob_casos= Poblacion %>% right_join(Positivos,
                        by=c("RegionSanitariaCodigo"="RegionSanitariaCodigo",
                             "ABSCodigo"="ABSCodigo","Sexo"="Sexo")) 
#En este caso podemos apreciar que sea el join que usemos igual nos dara el mismo resultado de 
#736 filas y 4 columnas.

Calcular Metricas(incidencias)

##incidesncia = numero de casos/poblacion
##incidenciaN = (numero de casos/poblacion) * N

pob_casos %>%
  mutate(incidencia = ncasos/poblacion,
         incidencia1000 = (ncasos/poblacion)*1000)

Visualizaciones de datos

incidencia =pob_casos %>%
  mutate(incidencia = ncasos/poblacion,
         incidencia1000 = (ncasos/poblacion)*1000)
View(incidencia)

Scatterplot

library(ggplot2)
incidencia %>%
  ggplot(aes(x = poblacion,
             y=  incidencia1000)) +
  geom_point()

incidencia %>%
  ggplot(aes(x = poblacion,
             y=  incidencia1000,
             col=Sexo)) +
  geom_point()

p1=incidencia %>%
  ggplot(aes(x = poblacion,
             y=  incidencia1000,
             col=Sexo)) +
  geom_point()
print(p1)

### Barplot,Grouped,Group by Region y Sexo

incidencia_region_sexo=incidencia %>%
  group_by(RegionSanitariaCodigo,
           Sexo) %>%
  summarise(poblacion = sum(poblacion),
            ncasos = sum(ncasos),
            incidencia1000 = ncasos/poblacion * 1000)%>%
  ungroup()
## `summarise()` has grouped output by 'RegionSanitariaCodigo'. You can override
## using the `.groups` argument.
incidencia_region_sexo %>%
  ggplot(aes(x=RegionSanitariaCodigo,
             y=incidencia1000,
             fill=Sexo,))+
  geom_bar(stat="identity")

incidencia_region_sexo %>%
  ggplot(aes(x=RegionSanitariaCodigo,
             y=incidencia1000,
             fill=Sexo,))+
  geom_bar(stat="identity",position = "dodge")

p2 = incidencia_region_sexo %>%
  ggplot(aes(x=RegionSanitariaCodigo,
             y=incidencia1000,
             fill=Sexo,))+
  geom_bar(stat="identity",position = "dodge")


p3 = incidencia_region_sexo %>%
  ggplot(aes(x=RegionSanitariaCodigo,
             y=incidencia1000,
             fill=Sexo,))+
  geom_bar(stat="identity",position = "fill")

p4  = incidencia_region_sexo %>%
  ggplot(aes(x=RegionSanitariaCodigo,
             y=incidencia1000,
             fill=Sexo,))+
  geom_bar(stat="identity",position = "stack")

print(p3)

print(p2)

print(incidencia_region_sexo)
## # A tibble: 14 × 5
##    RegionSanitariaCodigo Sexo   poblacion ncasos incidencia1000
##                    <dbl> <chr>      <dbl>  <dbl>          <dbl>
##  1                    61 Hombre    185795  23708          128. 
##  2                    61 Mujer     179527  25284          141. 
##  3                    62 Hombre    304839  29573           97.0
##  4                    62 Mujer     309991  32783          106. 
##  5                    63 Hombre     89795   7320           81.5
##  6                    63 Mujer      88317   7711           87.3
##  7                    64 Hombre    433361  49185          113. 
##  8                    64 Mujer     437120  54875          126. 
##  9                    67 Hombre    265504  32243          121. 
## 10                    67 Mujer     265569  36727          138. 
## 11                    71 Hombre     34308   4375          128. 
## 12                    71 Mujer      34210   4778          140. 
## 13                    78 Hombre   2464303 306003          124. 
## 14                    78 Mujer    2604430 343311          132.
print(p1)

print(p4)

incidencia_region_sexo = 
  incidencia_region_sexo %>%
  mutate(RegionSanitariaCodigo=as.character(RegionSanitariaCodigo))

incidencia_region_sexo %>%
  ggplot(aes(x=RegionSanitariaCodigo,
             y=incidencia1000,
             fill=Sexo,))+
  geom_bar(stat="identity",position = "stack")

Agregamos título a los gráficos

incidencia_region_sexo %>%
  ggplot(aes(x=RegionSanitariaCodigo,
             y=incidencia1000,
             fill=Sexo,))+
  geom_bar(stat="identity",position = "stack") +
  labs(title = "Incidencia según Region",
       subtitle = "Catalunya -2020/2021")

Personalizar titulos ejes

incidencia_region_sexo %>%
  ggplot(aes(x=RegionSanitariaCodigo,
             y=incidencia1000,
             fill=Sexo,))+
  geom_bar(stat="identity",position = "stack") +
  labs(title = "Incidencia según Region Sanitaria",
       subtitle = "Catalunya -2020/2021",
       x="Region Sanitaria",
       y= "Casos por 1000 habitantes")

Usamos temas

incidencia_region_sexo %>%
  ggplot(aes(x=RegionSanitariaCodigo,
             y=incidencia1000,
             fill=Sexo,))+
  geom_bar(stat="identity",position = "stack") +
  labs(title = "Incidencia según Region Sanitaria",
       subtitle = "Catalunya -2020/2021",
       x="Region Sanitaria",
       y= "Casos por 1000 habitantes")+
  theme_classic()

#Exportar documentos png #png(“figura1.png”)#Activar figura #print(p1)#Colocar nombre figura #dev.off()#Finalizar proceso #Buscar en files

GRACIAS