library(funModeling) 
## Loading required package: Hmisc
## Loading required package: lattice
## Loading required package: survival
## Loading required package: Formula
## Loading required package: ggplot2
## 
## Attaching package: 'Hmisc'
## The following objects are masked from 'package:base':
## 
##     format.pval, units
## funModeling v.1.9.4 :)
## Examples and tutorials at livebook.datascienceheroes.com
##  / Now in Spanish: librovivodecienciadedatos.ai
library(tidyverse) 
## ── Attaching packages
## ───────────────────────────────────────
## tidyverse 1.3.2 ──
## ✔ tibble  3.1.8      ✔ dplyr   1.0.10
## ✔ tidyr   1.2.1      ✔ stringr 1.5.0 
## ✔ readr   2.1.3      ✔ forcats 0.5.2 
## ✔ purrr   1.0.0      
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter()    masks stats::filter()
## ✖ dplyr::lag()       masks stats::lag()
## ✖ dplyr::src()       masks Hmisc::src()
## ✖ dplyr::summarize() masks Hmisc::summarize()
library(Hmisc)
library(tidyverse)
library(ggpubr)
library(gtable)
library(gt)
## 
## Attaching package: 'gt'
## 
## The following object is masked from 'package:Hmisc':
## 
##     html
library(survival)
library(ggpubr)
library(survminer)
## 
## Attaching package: 'survminer'
## 
## The following object is masked from 'package:survival':
## 
##     myeloma
library(readr)
library(gtsummary)

##ANALISIS DE DUNIA SIU###


library(readxl)
dbdunia <- read_excel("C:/Users/fidel/OneDrive - CINVESTAV/TESIS DUNIA/dbdunia.xlsx")
View(dbdunia)


glimpse(dbdunia)
## Rows: 14
## Columns: 11
## $ EDAD          <dbl> 5, 11, 11, 11, 9, 9, 11, 12, 8, 10, 7, 10, 9, 8
## $ SEXO          <dbl> 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2
## $ DX            <dbl> 3, 1, 1, 2, 1, 4, 3, 1, 1, 1, 2, 1, 1, 1
## $ NOTAS         <chr> NA, NA, "SE LE INICIA FILTRO AZUL DESDE LA PRIMERA CONSU…
## $ controles     <dbl> 1, 1, NA, 5, 1, 5, 1, 5, 1, 1, 3, 1, 2, 5
## $ `AV INICIAL`  <dbl> 0.70, 0.30, 1.00, 0.30, 0.18, 0.54, 0.30, 0.30, 0.40, 0.…
## $ `1er control` <dbl> 0.60, 0.40, 0.60, 0.18, 0.00, 0.18, 0.18, 0.30, 0.18, 0.…
## $ `2do control` <dbl> NA, NA, 0.48, 0.10, NA, 0.30, NA, 0.18, NA, NA, 0.10, NA…
## $ `3do control` <dbl> NA, NA, 0.18, 0.10, NA, 0.30, NA, 0.18, NA, NA, 0.18, NA…
## $ `4 control`   <dbl> NA, NA, 0.18, 0.10, NA, 0.18, NA, 0.00, NA, NA, NA, NA, …
## $ `5 control`   <dbl> NA, NA, NA, 0.1, NA, 0.3, NA, 0.0, NA, NA, NA, NA, NA, 0…

##redefinir variables

dbdunia <- dbdunia %>% mutate(SEXO=recode(SEXO, `1` = "M", 
                                                    `2` = "F"),
                              DX=recode(DX, `1` ="Anisometrópica",
                                        `2` = "Estrábica",
                              `3` = "Mixta", `4` = "Sensorial/deprivación"))
glimpse(dbdunia)
## Rows: 14
## Columns: 11
## $ EDAD          <dbl> 5, 11, 11, 11, 9, 9, 11, 12, 8, 10, 7, 10, 9, 8
## $ SEXO          <chr> "M", "F", "F", "F", "M", "F", "F", "F", "M", "F", "M", "…
## $ DX            <chr> "Mixta", "Anisometrópica", "Anisometrópica", "Estrábica"…
## $ NOTAS         <chr> NA, NA, "SE LE INICIA FILTRO AZUL DESDE LA PRIMERA CONSU…
## $ controles     <dbl> 1, 1, NA, 5, 1, 5, 1, 5, 1, 1, 3, 1, 2, 5
## $ `AV INICIAL`  <dbl> 0.70, 0.30, 1.00, 0.30, 0.18, 0.54, 0.30, 0.30, 0.40, 0.…
## $ `1er control` <dbl> 0.60, 0.40, 0.60, 0.18, 0.00, 0.18, 0.18, 0.30, 0.18, 0.…
## $ `2do control` <dbl> NA, NA, 0.48, 0.10, NA, 0.30, NA, 0.18, NA, NA, 0.10, NA…
## $ `3do control` <dbl> NA, NA, 0.18, 0.10, NA, 0.30, NA, 0.18, NA, NA, 0.18, NA…
## $ `4 control`   <dbl> NA, NA, 0.18, 0.10, NA, 0.18, NA, 0.00, NA, NA, NA, NA, …
## $ `5 control`   <dbl> NA, NA, NA, 0.1, NA, 0.3, NA, 0.0, NA, NA, NA, NA, NA, 0…

#ANALISIS EN GENERAL

library(dlookr)
## 
## Attaching package: 'dlookr'
## The following object is masked from 'package:tidyr':
## 
##     extract
## The following object is masked from 'package:Hmisc':
## 
##     describe
## The following object is masked from 'package:base':
## 
##     transform
dbdunia$EDAD = as.numeric(dbdunia$EDAD)

??dlookr
## starting httpd help server ...
##  done
dbdunia %>% select(EDAD, SEXO, DX) %>% tbl_summary(type = list(EDAD ~ "continuous")) 
Characteristic N = 141
EDAD 9.50 (8.25, 11.00)
SEXO
    F 8 (57%)
    M 6 (43%)
DX
    Anisometrópica 9 (64%)
    Estrábica 2 (14%)
    Mixta 2 (14%)
    Sensorial/deprivación 1 (7.1%)
1 Median (IQR); n (%)
dbdunia %>% select(EDAD) %>% describe()
## # A tibble: 1 × 26
##   described_…¹     n    na  mean    sd se_mean   IQR skewn…² kurto…³   p00   p01
##   <chr>        <int> <int> <dbl> <dbl>   <dbl> <dbl>   <dbl>   <dbl> <dbl> <dbl>
## 1 EDAD            14     0  9.36  1.91   0.509  2.75  -0.833   0.579     5  5.26
## # … with 15 more variables: p05 <dbl>, p10 <dbl>, p20 <dbl>, p25 <dbl>,
## #   p30 <dbl>, p40 <dbl>, p50 <dbl>, p60 <dbl>, p70 <dbl>, p75 <dbl>,
## #   p80 <dbl>, p90 <dbl>, p95 <dbl>, p99 <dbl>, p100 <dbl>, and abbreviated
## #   variable names ¹​described_variables, ²​skewness, ³​kurtosis
dbdunia %>% select(EDAD) %>% plot_normality()

sex <- dbdunia %>%
  group_by(SEXO) %>% 
  summarise(counts = n())


sex <- sex %>%
  arrange(desc(SEXO)) %>%
  mutate(prop = round(counts*100/sum(counts), 1),
         res = str_c(counts, " (", prop, "%)"),
         lab.ypos = cumsum(prop) - 0.5*prop)


sexpie<-ggplot(sex , aes(x = "", y = prop, fill = SEXO)) +
  geom_bar(width = 1, stat = "identity", color = "white") +
  geom_text(aes(y = lab.ypos, label = res), color = "black",
            fontface=2, size= 6)+
  coord_polar("y", start = 0)+
  ggpubr::fill_palette("Blues")+
  theme_void() + labs(fill = "SEXO") + 
  theme(text = element_text(size = 16, face="bold"))

sexpie

#EDAD

library(ggplot2)
# Basic stripchart
ggplot(dbdunia, aes(x=SEXO, y=EDAD)) + 
  geom_jitter()

# Change the position
# 0.2 : degree of jitter in x direction
p<-ggplot(dbdunia, aes(x=SEXO, y=EDAD, color=SEXO))  + 
  geom_jitter(position=position_jitter(0.2), size=5)+ theme_light()

edadsx<-p+ stat_summary(fun.y=median, geom="point", shape=15,
                 size=3, color="red")+scale_color_manual(values=c("#08306B", "#6BAED6"))+
  theme(legend.text = element_text(size = 20, color = "black"))+theme(text = element_text(size = 20)) 
## Warning: The `fun.y` argument of `stat_summary()` is deprecated as of ggplot2 3.3.0.
## ℹ Please use the `fun` argument instead.
edadsx

ggarrange(sexpie, edadsx + rremove("x.text"), 
          labels = c("A", "B"),
          ncol = 1, nrow = 2,  common.legend = TRUE, legend = "top")

##Grafica de diagnostico

df <- dbdunia %>% group_by(DX) %>%  summarise(n = n()) %>% 
  mutate(
    perc = round(proportions(n) * 100, 1),
    res = str_c(n, "(", perc, "%)"))
  
# Use position = position_dodge() 
p <- ggplot(df, aes(x = DX, y = n)) +
  geom_bar(
    aes(fill=DX),
    stat = "identity", position = position_dodge(0.8),
    width = 0.7
    )+theme_pubclean()+scale_fill_brewer(palette="Blues")


p 

p +  theme_pubclean()+ylab("conteo")+xlab("") + geom_text(
  aes(label = res, group = DX), 
  position = position_dodge(0.8),
  vjust = -0.3, size = 3.5
)

dbdunia <- dbdunia %>% mutate(diagnostico = case_when(DX == "Anisometrópica" ~ "Anisometrópica",
                                                      DX != "Anisometrópica" ~ "No Anisometrópica"))


dbdunia %>% select(diagnostico, SEXO, EDAD) %>% tbl_summary(by=diagnostico,type = list(EDAD ~ "continuous")) %>% add_p() %>% add_overall()
## Warning for variable 'EDAD':
## simpleWarning in wilcox.test.default(x = DATA[[1L]], y = DATA[[2L]], ...): cannot compute exact p-value with ties
Characteristic Overall, N = 141 Anisometrópica, N = 91 No Anisometrópica, N = 51 p-value2
SEXO >0.9
    F 8 (57%) 5 (56%) 3 (60%)
    M 6 (43%) 4 (44%) 2 (40%)
EDAD 9.50 (8.25, 11.00) 10.00 (9.00, 11.00) 9.00 (7.00, 11.00) 0.5
1 n (%); Median (IQR)
2 Fisher's exact test; Wilcoxon rank sum test

#gp <- dbdunia %>% select(`AV INICIAL`:`5 control`)

#gp

#tx <-gather(gp, key="visita", value="av")

#tx 

# Basic line plot with points
#ggplot(tx, aes(visita, av)) +
 # geom_line()+geom_path(stat = "identity")
  

#geom_point()