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