# Manejo y transformaci�n de datos
# Abrir la data
setwd("C:/tidyverse") # Establecer directorio de trabajo
data1 = [Link]("database_tb.csv", header = T) # Abrir la data
colnames(data1) # Variables de la data
head(data1)
# Manejo de la data con dplyr
[Link]("dplyr")
[Link]("janitor")
[Link]("ggplot2")
[Link]("knitr")
library(dplyr)
library(janitor)
library(ggplot2)
library(knitr)
data1 = tbl_df(data1) # Convertimos a un objeto "tbl"
class(data1)
data1
glimpse(data1)
# Tabla 1. Cantidad de pacientes manejados por la Cl�nica de Tuberculosis
data1 %>%
count(anio)
data1 %>%
count(anio)%>%
mutate(porc = [Link](n)*100)
data1 %>%
count(anio)%>%
mutate(porc = [Link](n)*100)%>%
ggplot(aes(x=anio, y=n)) + geom_line()
# Tabla 2. Cruce de a�o y tipo de pacientes atendidos en la Cl�nica de Tuberculosis
data1 %>%
count(anio, tipo_px_prof_o_activo)
data1 %>%
count(anio, tipo_px_prof_o_activo) %>%
group_by(tipo_px_prof_o_activo) %>%
mutate(porc = [Link](n)*100)
# Usando Janitor
data1 %>%
tabyl(anio, tipo_px_prof_o_activo) %>%
adorn_percentages("row") %>%
adorn_pct_formatting(digits = 1) %>%
adorn_ns("front")
data1 %>%
count(anio, tipo_px_prof_o_activo) %>%
group_by(tipo_px_prof_o_activo) %>%
mutate(porc = [Link](n)*100)%>%
ggplot(aes(x=anio, y=porc, col=tipo_px_prof_o_activo)) + geom_line()
# Quiero saber cu�ntos pacientes fueron atendidos que eran VIH negativos y
# con tuberculosis activa
data1 %>%
filter(dx_vih!="Si", tipo_px_prof_o_activo!="Profilaxis")%>%
count(anio) %>%
ggplot(aes(x = anio, y = n)) + geom_line() + labs(x = "A�o", y = "Frecuencia",
title = "Pacientes Tb activos")
# Filtrar por atenci�n pedi�trica (edad < 13 a�os), funci�n *filter*
data1 %>%
filter(dx_vih!="Si", tipo_px_prof_o_activo!="Profilaxis",
edad_al_diagnostico < 13)%>%
count(anio)
# Ordenando el data frame funci�n *arrange*
data1 %>%
filter(dx_vih!="Si", tipo_px_prof_o_activo!="Profilaxis",
edad_al_diagnostico < 13)%>%
count(anio) %>%
arrange(desc(n))
# Transformar una variable con la funci�n *mutate*
# A los pacientes menores de 13 a�os los atiende la secci�n de pediatr�a
# Debo crear la varaible Pediatr�a para diferenciar entre pacientes seg�n edades
data2 = data1 %>%
mutate(seccion = ifelse(edad_al_diagnostico < 13, "Pediatria", "Adultos"))%>%
filter(dx_vih!="Si", tipo_px_prof_o_activo!="Profilaxis")%>%
count(anio, seccion)
# Usamos el paquete knitr
data2 %>%
kable()
# Agrupar datos con la funci�n *group_by* y hacer res�menes con *summarize*
# Ahora yo quisiera comparar la edad promedio de pacientes adultos con
# VIH con la edad de pacientes adultos sin VIH,
# (solo me interesan los pacientes activos)
data1 %>%
filter(edad_al_diagnostico > 12, tipo_px_prof_o_activo=="Tuberculosis activa") %>
%
group_by(dx_vih) %>%
summarize(media_edad = mean(edad_al_diagnostico), de_edad =
sd(edad_al_diagnostico))
# visualicemos lo anterior con un boxplot
data1 %>%
filter(edad_al_diagnostico > 12, tipo_px_prof_o_activo=="Tuberculosis activa") %>
%
group_by(dx_vih) %>%
ggplot(aes(x = dx_vih, y = edad_al_diagnostico)) + geom_boxplot()
# Prueba de T de Student
data3 = data1 %>%
filter(edad_al_diagnostico > 12, tipo_px_prof_o_activo=="Tuberculosis activa") %>
%
group_by(dx_vih)
[Link](data3$edad_al_diagnostico ~ data3$dx_vih, [Link] = TRUE)
# Ahora me pregunto, la tuberculosis pulmonar se presenta a la misma edad promedio?
data1 %>%
filter(edad_al_diagnostico > 12, tipo_px_prof_o_activo=="Tuberculosis activa") %>
%
group_by(dx_vih) %>%
ggplot(aes(x = dx_vih, y = edad_al_diagnostico, color = tipo_de_tb)) +
geom_boxplot()
+ labs (x = "Diagn�stico de VIH", y = "Edad al diagn�stico (a�os")
# centrar� mis an�lisis en los pacientes adultos con VIH con Tb activa
data4 = data1 %>%
filter(edad_al_diagnostico > 12, tipo_px_prof_o_activo=="Tuberculosis activa",
dx_vih == "Si")
# Continuar� trabajando con boxplots:
# Var�an los CD4 (defensas) seg�n tipo de tuberculosis?
data4 %>%
ggplot(aes(x = tipo_de_tb, y = cd4, fill = tipo_de_tb)) + geom_boxplot()
# Adem�s quiero saber si ese comportamiento var�a seg�n edad y sexo
# El argumento facet_wrap
data4 %>%
ggplot(aes(x = tipo_de_tb, y = cd4, fill = tipo_de_tb)) + geom_boxplot() +
facet_wrap(~edad_rangos)
data4 %>%
ggplot(aes(x = tipo_de_tb, y = cd4, fill = tipo_de_tb)) + geom_boxplot() +
facet_wrap(~sexo)
# Ahora trabajemos con gr�ficos de dispersi�n
data4 %>%
ggplot(aes (x = cd4, y=cv, col = tipo_de_tb)) + geom_point()
# El argumento size
data4 %>%
ggplot(aes (x = cd4, y=cv, col = tipo_de_tb, size = cv)) + geom_point()
data4 %>%
ggplot(aes (x = cd4, y=cv, col = tipo_de_tb, size = cd4)) + geom_point()
data4 %>%
ggplot(aes (x = cd4, y=cv, col = tipo_de_tb, size = edad_rangos)) + geom_point()
# Y ahora vemos el uso concomitante de cada argumento usado
data4 %>%
ggplot(aes (x = cd4, y=cv, col = tipo_de_tb, size = edad_rangos)) +
geom_point() + facet_wrap(~sexo)
# Y qu� pasa con los gr�ficos para variables cualitativas?
# Pies para comparar la distribuci�n de sexo entre pacientes VIH y no VIH
data3 %>%
count(sexo) %>%
ggplot(aes(x="", y=n, fill=sexo)) +
geom_bar(stat="identity", width=1) +
coord_polar("y", start=0) + facet_wrap(~dx_vih)
data3 %>%
count(sexo) %>%
ggplot(aes(x="", y=n, fill=sexo)) +
geom_bar(stat="identity", width=1) +
coord_polar("y", start=0) + facet_wrap(~dx_vih)
# Gr�fico de barras
# Quiero saber si hay diferencia en la mortalidad en pacientes con y sin vih
data3 %>%
ggplot(aes (x=dx_vih, fill = pronostico)) + geom_bar()
# Ahora quiero comparar los porcentajes
data3 %>%
ggplot(aes (x=dx_vih, fill = pronostico)) + geom_bar(position="fill")
# Ahora quiero comparar la mortalidad de pacientes vih y no vih seg�n
# tipo de tuberculosis
data3 %>%
ggplot(aes (x=dx_vih, fill = pronostico)) + geom_bar(position="fill") +
facet_wrap(~ tipo_de_tb)
############################################################################