#Loading packages
library(ggplot2)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(ez)
Reading data
anamr=read.csv("C:\\Users\\gabri\\Downloads\\anaMR.csv",header=TRUE,sep=";")
anab=read.csv("C:\\Users\\gabri\\Downloads\\anaBasal.csv",header=TRUE,sep=";")
anac <- merge(anab, anamr, by = "id")
ana=subset(anac,anac$Exclude==FALSE)
ana$Group=as.factor(ana$Group)
Data summary
summary(ana)
## id Group Age Sex Weight
## Min. : 1.00 Bolus:168 Min. :35 Length:330 Min. : 41.00
## 1st Qu.:16.00 TCI :162 1st Qu.:39 Class :character 1st Qu.: 60.00
## Median :31.00 Median :46 Mode :character Median : 68.00
## Mean :30.95 Mean :45 Mean : 72.07
## 3rd Qu.:46.00 3rd Qu.:50 3rd Qu.: 83.00
## Max. :60.00 Max. :55 Max. :113.00
##
## Height Hypertension MAPBasal ASA
## Length:330 Mode :logical Min. : 69.00 Length:330
## Class :character FALSE:270 1st Qu.: 84.00 Class :character
## Mode :character TRUE :60 Median : 91.00 Mode :character
## Mean : 91.24
## 3rd Qu.: 96.00
## Max. :118.00
## NA's :6
## Ecluded NotIncluded Exclude tmin MAP
## Mode :logical Mode :logical Mode :logical Min. : 0 Min. : 53.00
## FALSE:330 FALSE:330 FALSE:330 1st Qu.: 2 1st Qu.: 78.25
## Median : 5 Median : 87.00
## Mean : 5 Mean : 88.25
## 3rd Qu.: 8 3rd Qu.: 98.00
## Max. :10 Max. :137.00
##
## BIS HR EtSevo SR
## Min. : 6.0 Min. : 37.00 Min. :0.00000 Min. : 0.000
## 1st Qu.:38.0 1st Qu.: 65.00 1st Qu.:0.00000 1st Qu.: 0.000
## Median :50.5 Median : 74.00 Median :0.00000 Median : 0.000
## Mean :55.3 Mean : 76.62 Mean :0.03364 Mean : 2.818
## 3rd Qu.:73.0 3rd Qu.: 87.00 3rd Qu.:0.00000 3rd Qu.: 0.000
## Max. :99.0 Max. :121.00 Max. :1.50000 Max. :72.000
##
summary(subset(ana,ana$Group=="Bolus"))
## id Group Age Sex
## Min. : 1.00 Bolus:168 Min. :35.00 Length:168
## 1st Qu.:14.00 TCI : 0 1st Qu.:39.75 Class :character
## Median :33.00 Median :47.50 Mode :character
## Mean :31.36 Mean :45.18
## 3rd Qu.:48.50 3rd Qu.:50.00
## Max. :60.00 Max. :55.00
##
## Weight Height Hypertension MAPBasal
## Min. : 52.00 Length:168 Mode :logical Min. : 69.00
## 1st Qu.: 61.50 Class :character FALSE:138 1st Qu.: 84.00
## Median : 75.00 Mode :character TRUE :30 Median : 88.00
## Mean : 75.36 Mean : 89.37
## 3rd Qu.: 86.75 3rd Qu.: 95.00
## Max. :113.00 Max. :118.00
## NA's :6
## ASA Ecluded NotIncluded Exclude
## Length:168 Mode :logical Mode :logical Mode :logical
## Class :character FALSE:168 FALSE:168 FALSE:168
## Mode :character
##
##
##
##
## tmin MAP BIS HR
## Min. : 0 Min. : 57.00 Min. : 6.00 Min. : 37.00
## 1st Qu.: 2 1st Qu.: 76.75 1st Qu.:34.00 1st Qu.: 65.00
## Median : 5 Median : 85.00 Median :44.00 Median : 74.00
## Mean : 5 Mean : 86.24 Mean :50.54 Mean : 76.26
## 3rd Qu.: 8 3rd Qu.: 95.00 3rd Qu.:70.00 3rd Qu.: 88.00
## Max. :10 Max. :129.00 Max. :99.00 Max. :121.00
##
## EtSevo SR
## Min. :0.00000 Min. : 0.000
## 1st Qu.:0.00000 1st Qu.: 0.000
## Median :0.00000 Median : 0.000
## Mean :0.06607 Mean : 5.518
## 3rd Qu.:0.00000 3rd Qu.: 0.000
## Max. :1.50000 Max. :72.000
##
summary(subset(ana,ana$Group=="TCI"))
## id Group Age Sex
## Min. : 6.00 Bolus: 0 Min. :35.00 Length:162
## 1st Qu.:19.00 TCI :162 1st Qu.:38.00 Class :character
## Median :30.00 Median :46.00 Mode :character
## Mean :30.52 Mean :44.81
## 3rd Qu.:39.00 3rd Qu.:51.00
## Max. :56.00 Max. :55.00
## Weight Height Hypertension MAPBasal
## Min. : 41.00 Length:162 Mode :logical Min. : 74.00
## 1st Qu.: 58.00 Class :character FALSE:132 1st Qu.: 83.00
## Median : 67.00 Mode :character TRUE :30 Median : 92.00
## Mean : 68.67 Mean : 93.11
## 3rd Qu.: 77.00 3rd Qu.:103.00
## Max. :112.00 Max. :111.00
## ASA Ecluded NotIncluded Exclude
## Length:162 Mode :logical Mode :logical Mode :logical
## Class :character FALSE:162 FALSE:162 FALSE:162
## Mode :character
##
##
##
## tmin MAP BIS HR EtSevo
## Min. : 0 Min. : 53.00 Min. :32.00 Min. : 55.00 Min. :0
## 1st Qu.: 2 1st Qu.: 80.00 1st Qu.:43.25 1st Qu.: 66.00 1st Qu.:0
## Median : 5 Median : 88.50 Median :55.00 Median : 74.00 Median :0
## Mean : 5 Mean : 90.33 Mean :60.25 Mean : 76.99 Mean :0
## 3rd Qu.: 8 3rd Qu.: 99.00 3rd Qu.:77.00 3rd Qu.: 85.75 3rd Qu.:0
## Max. :10 Max. :137.00 Max. :99.00 Max. :117.00 Max. :0
## SR
## Min. :0.00000
## 1st Qu.:0.00000
## Median :0.00000
## Mean :0.01852
## 3rd Qu.:0.00000
## Max. :2.00000
Main outcome (MAP)
Calculate means by time and group
ana_stats <- ana %>%
group_by(tmin, Group) %>%
summarise(
MAP_mean = mean(MAP, na.rm = TRUE),
MAP_sd = sd(MAP, na.rm = TRUE),
.groups = 'drop'
)
Plot
ggplot(ana_stats, aes(x = tmin, y = MAP_mean, group = Group, color = Group)) +
geom_errorbar(aes(ymin = MAP_mean - MAP_sd, ymax = MAP_mean + MAP_sd), width = 0.1, position = position_dodge(0.2), alpha = 0.6) +
geom_line(aes(linetype = Group), position = position_dodge(0.2)) +
geom_point(position = position_dodge(0.2), size = 3, alpha = 0.6) +
labs(x = "Time after induction (min)", y = "Mean arterial pressure (MAP)", color = "Group") +
theme_minimal() +
theme(legend.position = "bottom")

Repeated measures ANOVA
resultados_ez <- ezANOVA(data = ana, dv = .(MAP), wid = .(id), within = .(tmin), detailed = TRUE)
resultados_ez
## $ANOVA
## Effect DFn DFd SSn SSd F p p<.05 ges
## 1 tmin 1 54 498.2403 7650.831 3.516608 0.06616801 0.06114074
Secondary outcomes
BIS
Calculate means by time and group
ana_stats <- ana %>%
group_by(tmin, Group) %>%
summarise(
BIS_mean = mean(BIS, na.rm = TRUE),
BIS_sd = sd(BIS, na.rm = TRUE),
.groups = 'drop'
)
Plot
ggplot(ana_stats, aes(x = tmin, y = BIS_mean, group = Group, color = Group)) +
geom_errorbar(aes(ymin = BIS_mean - BIS_sd, ymax = BIS_mean + BIS_sd), width = 0.1, position = position_dodge(0.2), alpha = 0.6) +
geom_line(aes(linetype = Group), position = position_dodge(0.2)) +
geom_point(position = position_dodge(0.2), size = 3, alpha = 0.6) +
labs(x = "Time after induction (min)", y = "Bispectral index (BIS)", color = "Group") +
theme_minimal() +
theme(legend.position = "bottom")

Repeated measures ANOVA
resultados_ez <- ezANOVA(data = ana, dv = .(BIS), wid = .(id), within = .(tmin), detailed = TRUE)
resultados_ez
## $ANOVA
## Effect DFn DFd SSn SSd F p p<.05 ges
## 1 tmin 1 54 76092.85 6560.24 626.3511 2.197161e-31 * 0.9206292
SR
Calculate means by time and group
ana_stats <- ana %>%
group_by(tmin, Group) %>%
summarise(
SR_mean = mean(SR, na.rm = TRUE),
SR_sd = sd(SR, na.rm = TRUE),
.groups = 'drop'
)
Plot
ggplot(ana_stats, aes(x = tmin, y = SR_mean, group = Group, color = Group)) +
geom_errorbar(aes(ymin = SR_mean - SR_sd, ymax = SR_mean + SR_sd), width = 0.1, position = position_dodge(0.2), alpha = 0.6) +
geom_line(aes(linetype = Group), position = position_dodge(0.2)) +
geom_point(position = position_dodge(0.2), size = 3, alpha = 0.6) +
labs(x = "Time after induction (min)", y = "Suppression rate (SR)", color = "Group") +
theme_minimal() +
theme(legend.position = "bottom")

Repeated measures ANOVA
resultados_ez <- ezANOVA(data = ana, dv = .(SR), wid = .(id), within = .(tmin), detailed = TRUE)
resultados_ez
## $ANOVA
## Effect DFn DFd SSn SSd F p p<.05 ges
## 1 tmin 1 54 71.31844 1252.853 3.073941 0.08523143 0.05385892
HR
Calculate means by time and group
ana_stats <- ana %>%
group_by(tmin, Group) %>%
summarise(
HR_mean = mean(HR, na.rm = TRUE),
HR_sd = sd(HR, na.rm = TRUE),
.groups = 'drop'
)
Plot
ggplot(ana_stats, aes(x = tmin, y = HR_mean, group = Group, color = Group)) +
geom_errorbar(aes(ymin = HR_mean - HR_sd, ymax = HR_mean + HR_sd), width = 0.1, position = position_dodge(0.2), alpha = 0.6) +
geom_line(aes(linetype = Group), position = position_dodge(0.2)) +
geom_point(position = position_dodge(0.2), size = 3, alpha = 0.6) +
labs(x = "Time after induction (min)", y = "Heart Rate (HR)", color = "Group") +
theme_minimal() +
theme(legend.position = "bottom")

Repeated measures ANOVA
resultados_ez <- ezANOVA(data = ana, dv = .(BIS), wid = .(id), within = .(tmin), detailed = TRUE)
resultados_ez
## $ANOVA
## Effect DFn DFd SSn SSd F p p<.05 ges
## 1 tmin 1 54 76092.85 6560.24 626.3511 2.197161e-31 * 0.9206292