install packages:

library(plyr)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:plyr':
## 
##     arrange, count, desc, failwith, id, mutate, rename, summarise,
##     summarize
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(tidyr)
library(readxl)
library("rstatix")
## 
## Attaching package: 'rstatix'
## The following objects are masked from 'package:plyr':
## 
##     desc, mutate
## The following object is masked from 'package:stats':
## 
##     filter
library("ggplot2")
library("dplyr")
library("ggpubr")
## 
## Attaching package: 'ggpubr'
## The following object is masked from 'package:plyr':
## 
##     mutate
library("dunn.test")
library("ARTool")
library(openxlsx)
library("rio")
library(corrplot)
## corrplot 0.95 loaded

locate file:

DOU_Complete_KW <- read_excel("~/Desktop/NCCU/Ancestry Project/Current Working Files/DOU_Complete_KW.xls")

change file name:

DOU_Complete <- DOU_Complete_KW
colnames(DOU_Complete)
##  [1] "Participant Number (DUO-)" "Location"                 
##  [3] "Age"                       "Zip code"                 
##  [5] "Sex"                       "WAFR"                     
##  [7] "NATAM"                     "EURO"                     
##  [9] "Frackalkine"               "IFNa2"                    
## [11] "IFNy"                      "IL3"                      
## [13] "IL4"                       "IL7"                      
## [15] "IL18"                      "TNFa"                     
## [17] "Height"                    "Weight"                   
## [19] "Waist Circumference"       "Hip Circumference"        
## [21] "BMI"                       "HbA1c"

fix names with spaces:

names(DOU_Complete)[1]<-"Participant_Number"
names(DOU_Complete)[4]<-"Zip_code"
names(DOU_Complete)[19]<-"Waist_Cir"
names(DOU_Complete)[20]<-"Hip_Cir"

—————-Descriptive Statistics for population——————- splitting ancestry data into quartiles:

#West African Ancestry
WAFRquart <- quantile(DOU_Complete$WAFR, probs = c(0.25, 0.5, 0.75), na.rm = TRUE)
WAFRquart
##     25%     50%     75% 
## 0.76000 0.81915 0.87000
#European Ancestry
EUROquart <- quantile(DOU_Complete$EURO, probs = c(0.25, 0.5, 0.75), na.rm = TRUE)
EUROquart
##     25%     50%     75% 
## 0.01970 0.06000 0.14405
#Native American Ancestry
NATAMquart <- quantile(DOU_Complete$NATAM, probs = c(0.25, 0.5, 0.75), na.rm = TRUE)
NATAMquart
##      25%      50%      75% 
## 0.026100 0.070000 0.153825

subset data by ancestry: West African Ancestry:

#subset
WAFRlow <- subset(DOU_Complete, EURO <= 0.76000)
WAFRmid <- subset(DOU_Complete, WAFR >= 0.76001 & WAFR <= 0.86999)
WAFRhigh <- subset(DOU_Complete, WAFR >= 0.87000)

European Ancestry:

#subset
EUROlow <- subset(DOU_Complete, EURO <= 0.01970)
EUROmid <- subset(DOU_Complete, EURO >= 0.01971 & EURO <= 0.14404)
EUROhigh <- subset(DOU_Complete, EURO >= 0.14405)

Native American Ancestry:

#subset
NATAMlow <- subset(DOU_Complete, NATAM <= 0.026100)
NATAMmid <- subset(DOU_Complete, NATAM >= 0.026101 & NATAM <= 0.153824)
NATAMhigh <- subset(DOU_Complete, NATAM >= 0.153825)

histogram of WAFR:

hist(DOU_Complete$WAFR,
     breaks = 100,
     main = "Histogram of % WAFR",
     col = "lightblue",
     border = "black")

histogram of EURO:

hist(DOU_Complete$EURO,
     breaks = 100,
     main = "Histogram of % EURO",
     col = "coral",
     border = "black")

histogram of NATAM:

hist(DOU_Complete$NATAM,
     breaks = 100,
     main = "Histogram of % NATAM",
     col = "darkgoldenrod1",
     border = "black")

creating data set that removes rows/individuals with NA (no values for ancestry data):

WAFRlab<- subset(DOU_Complete, !is.na(DOU_Complete$WAFR))
EUROlab<- subset(DOU_Complete, !is.na(DOU_Complete$EURO))
NATAMlab<- subset(DOU_Complete, !is.na(DOU_Complete$NATAM))

creating a new column within the current data set:

WAFRlab$WAFRPercentage[WAFRlab$WAFR < 0.76000] <- 0
## Warning: Unknown or uninitialised column: `WAFRPercentage`.
WAFRlab$WAFRPercentage[(WAFRlab$WAFR >= 0.76001) & (WAFRlab$WAFR <= 0.86999)] <- 1
WAFRlab$WAFRPercentage[WAFRlab$WAFR > 0.87000] <- 2
WAFRlab$WAFRPercentage
##   [1]  0  0  1  1  2  1  2  0  1  0  1  0  0  1  1  1  2  2  0  2  0  1  1  0  1
##  [26]  0  0  1  0  1  1  1  1  1  1  0  2  2  1  0  1  2  2  1  2  1  1  1  2  1
##  [51]  2  1  2  1  0  1  0  1  2  0  1  1  0  1  2  2  2  2  2  1  2  1  0  1  0
##  [76]  1  0  1  1  1  1  2  2  1  1  1  2  1  1  2  2  1  1  1  1  0  1  0  2  2
## [101]  1  1  0  2  2  1  0  0  0  1  0  1  1  2  1  1  1  1  1 NA  1  1  1  1  1
## [126]  2  2  0  2  0  2  0  0  0 NA  0  0  0  2  1  1 NA  0  0  0  2  2  2  1  2
## [151]  0  1  1  1  2  1  0  2  1  1  2  0  1 NA  2  0  1  1  2  1  2  1  0  0 NA
## [176]  1  2  0  1  1  1 NA  1  1  1  0  1  2  0  1  1  1  1  1  1  0  1  0  2 NA
## [201]  2  2
EUROquart
##     25%     50%     75% 
## 0.01970 0.06000 0.14405
EUROlab$EUROPercentage[EUROlab$EURO < 0.01970] <- 0
## Warning: Unknown or uninitialised column: `EUROPercentage`.
EUROlab$EUROPercentage[(EUROlab$EURO >= 0.01971) & (EUROlab$EURO <= 0.14404)] <- 1
EUROlab$EUROPercentage[EUROlab$EURO > 0.14405] <- 2
EUROlab$EUROPercentage
##   [1] 1 1 2 1 0 0 1 0 1 0 0 1 0 0 2 0 0 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 0 0
##  [38] 0 0 0 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0 1 1 1 1 2 0 1 1 0 0 0 0 1 1 1 0 1 1 2
##  [75] 0 0 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 1 0 1 0 1 1 0 0 0 1 1 2 2 2 2 1 2
## [112] 2 2 0 1 1 1 2 1 1 2 2 1 1 1 1 1 2 0 2 1 1 2 2 2 1 2 2 1 1 1 1 2 2 1 1 1 0
## [149] 2 0 2 2 1 1 1 2 2 1 1 2 1 2 2 2 1 2 1 1 1 1 1 2 2 2 2 1 1 2 1 2 2 2 1 2 2
## [186] 2 2 0 2 2 2 1 1 2 1 2 1 2 1 1 1 1
NATAMquart
##      25%      50%      75% 
## 0.026100 0.070000 0.153825
NATAMlab$NATAMPercentage[NATAMlab$NATAM < 0.026100] <- 0
## Warning: Unknown or uninitialised column: `NATAMPercentage`.
NATAMlab$NATAMPercentage[(NATAMlab$NATAM >= 0.026101) & (NATAMlab$NATAM <= 0.153824)] <- 1
NATAMlab$NATAMPercentage[NATAMlab$NATAM > 0.153825] <- 2
NATAMlab$NATAMPercentage
##   [1] 2 2 1 2 1 2 1 2 1 2 1 2 2 2 0 2 1 0 2 1 2 2 1 2 1 2 2 2 2 1 1 1 1 1 2 2 1
##  [38] 1 2 2 2 0 0 2 0 1 1 1 1 2 1 1 0 2 2 2 2 1 1 2 1 2 2 2 1 1 1 1 0 2 0 1 2 1
##  [75] 2 2 2 1 2 1 1 1 1 1 1 2 0 2 2 1 1 1 1 1 1 2 2 2 0 0 1 1 2 1 0 0 1 1 0 1 2
## [112] 1 1 1 0 1 1 0 1 0 0 1 0 1 0 1 1 1 0 1 1 2 0 1 0 2 1 1 0 1 1 1 0 1 2 0 1 1
## [149] 0 0 0 1 0 0 1 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 1 0 0
## [186] 2 0 1 0 0 0 1 1 0 1 0 1 1 1 1 0 0

creating a new column that is a replicate of the old column (labeling our original conditions with text):

WAFRlab$WAFRPerLab <- WAFRlab$WAFRPercentage
WAFRlab$WAFRPerLab[WAFRlab$WAFRPerLab == 0] <- "Low"
WAFRlab$WAFRPerLab[WAFRlab$WAFRPerLab == 1] <- "Mid"
WAFRlab$WAFRPerLab[WAFRlab$WAFRPerLab == 2] <- "High"
EUROlab$EUROPerLab <- EUROlab$EUROPercentage
EUROlab$EUROPerLab[EUROlab$EUROPerLab == 0] <- "Low"
EUROlab$EUROPerLab[EUROlab$EUROPerLab == 1] <- "Mid"
EUROlab$EUROPerLab[EUROlab$EUROPerLab == 2] <- "High"
NATAMlab$NATAMPerLab <- NATAMlab$NATAMPercentage
NATAMlab$NATAMPerLab[NATAMlab$NATAMPerLab == 0] <- "Low"
NATAMlab$NATAMPerLab[NATAMlab$NATAMPerLab == 1] <- "Mid"
NATAMlab$NATAMPerLab[NATAMlab$NATAMPerLab == 2] <- "High"

——————-IL3———————

IL3 WAFR ancestry plot with mean bar:

IL3.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IL3)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IL3 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL3 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL3.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL3.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL3.compare)
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL3 WAFR ancestry plot with box plot (Color):

IL3.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IL3, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IL3 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL3 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL3.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL3.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL3.compare)
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL3 EURO ancestry plot with mean bar:

IL3.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IL3)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IL3 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL3 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL3.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL3.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL3.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

IL3 EURO ancestry plot with box plot (Color):

IL3.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IL3, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IL3 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL3 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL3.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL3.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL3.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

IL3 NATAM ancestry plot with mean bar:

IL3.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IL3)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IL3 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL3 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL3.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL3.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL3.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

IL3 NATAM ancestry plot with box plot (Color):

IL3.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IL3, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IL3 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL3 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL3.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL3.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL3.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

——————-Frackalkine———————

Frackalkine WAFR ancestry plot with mean bar:

Frackalkine.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=Frackalkine)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("Frackalkine \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Frackalkine Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
Frackalkine.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Frackalkine.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Frackalkine.compare)
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

Frackalkine WAFR ancestry plot with box plot (Color):

Frackalkine.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=Frackalkine, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("Frackalkine \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Frackalkine Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
Frackalkine.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Frackalkine.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Frackalkine.compare)
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

Frackalkine EURO ancestry plot with mean bar:

Frackalkine.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=Frackalkine)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("Frackalkine \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Frackalkine Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
Frackalkine.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Frackalkine.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Frackalkine.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

Frackalkine EURO ancestry plot with box plot (Color):

Frackalkine.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=Frackalkine, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("Frackalkine \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Frackalkine Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
Frackalkine.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Frackalkine.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Frackalkine.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

Frackalkine NATAM ancestry plot with mean bar:

Frackalkine.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=Frackalkine)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("Frackalkine \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Frackalkine Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
Frackalkine.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Frackalkine.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Frackalkine.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

Frackalkine NATAM ancestry plot with box plot (Color):

Frackalkine.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=Frackalkine, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("Frackalkine \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Frackalkine Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
Frackalkine.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Frackalkine.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Frackalkine.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

——————-IFNa2———————

IFNa2 WAFR ancestry plot with mean bar:

IFNa2.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IFNa2)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IFNa2 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IFNa2 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IFNa2.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IFNa2.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IFNa2.compare)
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

IFNa2 WAFR ancestry plot with box plot (Color):

IFNa2.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IFNa2, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IFNa2 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IFNa2 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IFNa2.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IFNa2.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IFNa2.compare)
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

IFNa2 EURO ancestry plot with mean bar:

IFNa2.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IFNa2)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IFNa2 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IFNa2 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IFNa2.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IFNa2.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IFNa2.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

IFNa2 EURO ancestry plot with box plot (Color):

IFNa2.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IFNa2, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IFNa2 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IFNa2 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IFNa2.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IFNa2.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IFNa2.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

IFNa2 NATAM ancestry plot with mean bar:

IFNa2.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IFNa2)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IFNa2 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IFNa2 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IFNa2.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IFNa2.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IFNa2.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

IFNa2 NATAM ancestry plot with box plot (Color):

IFNa2.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IFNa2, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IFNa2 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IFNa2 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IFNa2.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IFNa2.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IFNa2.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

——————-IFNy———————

IFNy WAFR ancestry plot with mean bar:

IFNy.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IFNy)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IFNy \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IFNy Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IFNy.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IFNy.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IFNy.compare)
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

IFNy WAFR ancestry plot with box plot (Color):

IFNy.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IFNy, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IFNy \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IFNy Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IFNy.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IFNy.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IFNy.compare)
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

IFNy EURO ancestry plot with mean bar:

IFNy.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IFNy)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IFNy \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IFNy Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IFNy.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IFNy.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IFNy.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

IFNy EURO ancestry plot with box plot (Color):

IFNy.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IFNy, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IFNy \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IFNy Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IFNy.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IFNy.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IFNy.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

IFNy NATAM ancestry plot with mean bar:

IFNy.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IFNy)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IFNy \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IFNy Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IFNy.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IFNy.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IFNy.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

IFNy NATAM ancestry plot with box plot (Color):

IFNy.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IFNy, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IFNy \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IFNy Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IFNy.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IFNy.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IFNy.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

——————-IL4———————

IL4 WAFR ancestry plot with mean bar:

IL4.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IL4)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IL4 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL4 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL4.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL4.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL4.compare)
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL4 WAFR ancestry plot with box plot (Color):

IL4.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IL4, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IL4 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL4 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL4.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL4.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL4.compare)
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL4 EURO ancestry plot with mean bar:

IL4.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IL4)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IL4 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL4 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL4.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL4.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL4.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

IL4 EURO ancestry plot with box plot (Color):

IL4.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IL4, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IL4 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL4 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL4.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL4.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL4.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

IL4 NATAM ancestry plot with mean bar:

IL4.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IL4)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IL4 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL4 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL4.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL4.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL4.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

IL4 NATAM ancestry plot with box plot (Color):

IL4.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IL4, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IL4 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL4 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL4.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL4.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL4.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

——————-IL7———————

IL7 WAFR ancestry plot with mean bar:

IL7.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IL7)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IL7 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL7 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL7.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL7.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL7.compare)
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL7 WAFR ancestry plot with box plot (Color):

IL7.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IL7, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IL7 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL7 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL7.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL7.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL7.compare)
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL7 EURO ancestry plot with mean bar:

IL7.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IL7)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IL7 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL7 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL7.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL7.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL7.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

IL7 EURO ancestry plot with box plot (Color):

IL7.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IL7, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IL7 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL7 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL7.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL7.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL7.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

IL7 NATAM ancestry plot with mean bar:

IL7.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IL7)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IL7 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL7 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL7.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL7.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL7.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

IL7 NATAM ancestry plot with box plot (Color):

IL7.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IL7, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IL7 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL7 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL7.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL7.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL7.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

——————-IL18———————

IL18 WAFR ancestry plot with mean bar:

IL18.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IL18)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IL18 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL18 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL18.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL18.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL18.compare)
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL18 WAFR ancestry plot with box plot (Color):

IL18.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IL18, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IL18 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL18 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL18.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL18.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL18.compare)
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL18 EURO ancestry plot with mean bar:

IL18.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IL18)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IL18 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL18 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL18.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL18.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL18.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

IL18 EURO ancestry plot with box plot (Color):

IL18.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IL18, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IL18 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL18 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL18.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL18.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL18.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

IL18 NATAM ancestry plot with mean bar:

IL18.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IL18)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IL18 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL18 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL18.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL18.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL18.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

IL18 NATAM ancestry plot with box plot (Color):

IL18.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IL18, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IL18 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL18 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL18.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL18.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL18.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

——————-TNFa———————

TNFa WAFR ancestry plot with mean bar:

TNFa.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=TNFa)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("TNFa \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("TNFa Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
TNFa.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
TNFa.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = TNFa.compare)
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

TNFa WAFR ancestry plot with box plot (Color):

TNFa.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=TNFa, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("TNFa \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("TNFa Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
TNFa.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
TNFa.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = TNFa.compare)
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

TNFa EURO ancestry plot with mean bar:

TNFa.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=TNFa)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("TNFa \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("TNFa Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
TNFa.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
TNFa.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = TNFa.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

TNFa EURO ancestry plot with box plot (Color):

TNFa.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=TNFa, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("TNFa \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("TNFa Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
TNFa.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
TNFa.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = TNFa.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

TNFa NATAM ancestry plot with mean bar:

TNFa.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=TNFa)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("TNFa \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("TNFa Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
TNFa.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
TNFa.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = TNFa.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

TNFa NATAM ancestry plot with box plot (Color):

TNFa.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=TNFa, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("TNFa \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("TNFa Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
TNFa.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
TNFa.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = TNFa.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

——————-Height———————

Height WAFR ancestry plot with mean bar:

Height.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=Height)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("Height \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Height Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
Height.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Height.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Height.compare)
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

Height WAFR ancestry plot with box plot (Color):

Height.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=Height, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("Height \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Height Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
Height.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Height.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Height.compare)
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

Height EURO ancestry plot with mean bar:

Height.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=Height)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("Height \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Height Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
Height.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Height.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Height.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

Height EURO ancestry plot with box plot (Color):

Height.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=Height, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("Height \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Height Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
Height.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Height.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Height.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

Height NATAM ancestry plot with mean bar:

Height.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=Height)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("Height \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Height Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
Height.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Height.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Height.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

Height NATAM ancestry plot with box plot (Color):

Height.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=Height, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("Height \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Height Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
Height.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Height.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Height.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

——————-Weight———————

Weight WAFR ancestry plot with mean bar:

Weight.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=Weight)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("Weight \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Weight Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
Weight.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Weight.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Weight.compare)
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

Weight WAFR ancestry plot with box plot (Color):

Weight.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=Weight, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("Weight \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Weight Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
Weight.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Weight.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Weight.compare)
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

Weight EURO ancestry plot with mean bar:

Weight.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=Weight)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("Weight \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Weight Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
Weight.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Weight.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Weight.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

Weight EURO ancestry plot with box plot (Color):

Weight.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=Weight, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("Weight \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Weight Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
Weight.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Weight.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Weight.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

Weight NATAM ancestry plot with mean bar:

Weight.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=Weight)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("Weight \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Weight Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
Weight.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Weight.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Weight.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

Weight NATAM ancestry plot with box plot (Color):

Weight.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=Weight, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("Weight \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Weight Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
Weight.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Weight.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Weight.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

——————-Waist_Cir———————

Waist_Cir WAFR ancestry plot with mean bar:

Waist_Cir.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=Waist_Cir)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("Waist_Cir \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Waist_Cir Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
Waist_Cir.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Waist_Cir.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Waist_Cir.compare)
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error in `mutate()`:
## ℹ In argument: `p = purrr::map(...)`.
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## ℹ With name: x.1.
## Caused by error in `t.test.default()`:
## ! not enough 'y' observations
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Computation failed in `stat_signif()`.
## Caused by error in `scales$y$range$range[2] - scales$y$range$range[1]`:
## ! non-numeric argument to binary operator
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

Waist_Cir WAFR ancestry plot with box plot (Color):

Waist_Cir.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=Waist_Cir, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("Waist_Cir \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Waist_Cir Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
Waist_Cir.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Waist_Cir.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Waist_Cir.compare)
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error in `mutate()`:
## ℹ In argument: `p = purrr::map(...)`.
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## ℹ With name: x.1.
## Caused by error in `t.test.default()`:
## ! not enough 'y' observations
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Computation failed in `stat_signif()`.
## Caused by error in `scales$y$range$range[2] - scales$y$range$range[1]`:
## ! non-numeric argument to binary operator
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

Waist_Cir EURO ancestry plot with mean bar:

Waist_Cir.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=Waist_Cir)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("Waist_Cir \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Waist_Cir Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
Waist_Cir.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Waist_Cir.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Waist_Cir.compare)
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error in `mutate()`:
## ℹ In argument: `p = purrr::map(...)`.
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## ℹ With name: x.2.
## Caused by error in `t.test.default()`:
## ! not enough 'y' observations
## Warning: Computation failed in `stat_signif()`.
## Caused by error in `scales$y$range$range[2] - scales$y$range$range[1]`:
## ! non-numeric argument to binary operator

Waist_Cir EURO ancestry plot with box plot (Color):

Waist_Cir.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=Waist_Cir, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("Waist_Cir \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Waist_Cir Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
Waist_Cir.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Waist_Cir.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Waist_Cir.compare)
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error in `mutate()`:
## ℹ In argument: `p = purrr::map(...)`.
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## ℹ With name: x.2.
## Caused by error in `t.test.default()`:
## ! not enough 'y' observations
## Warning: Computation failed in `stat_signif()`.
## Caused by error in `scales$y$range$range[2] - scales$y$range$range[1]`:
## ! non-numeric argument to binary operator

Waist_Cir NATAM ancestry plot with mean bar:

Waist_Cir.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=Waist_Cir)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("Waist_Cir \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Waist_Cir Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
Waist_Cir.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Waist_Cir.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Waist_Cir.compare)
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error in `mutate()`:
## ℹ In argument: `p = purrr::map(...)`.
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## ℹ With name: x.3.
## Caused by error in `t.test.default()`:
## ! not enough 'y' observations
## Warning: Computation failed in `stat_signif()`.
## Caused by error in `scales$y$range$range[2] - scales$y$range$range[1]`:
## ! non-numeric argument to binary operator

Waist_Cir NATAM ancestry plot with box plot (Color):

Waist_Cir.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=Waist_Cir, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("Waist_Cir \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Waist_Cir Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
Waist_Cir.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Waist_Cir.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Waist_Cir.compare)
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error in `mutate()`:
## ℹ In argument: `p = purrr::map(...)`.
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## ℹ With name: x.3.
## Caused by error in `t.test.default()`:
## ! not enough 'y' observations
## Warning: Computation failed in `stat_signif()`.
## Caused by error in `scales$y$range$range[2] - scales$y$range$range[1]`:
## ! non-numeric argument to binary operator

——————-Hip_Cir———————

Hip_Cir WAFR ancestry plot with mean bar:

Hip_Cir.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=Hip_Cir)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("Hip_Cir \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Hip_Cir Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
Hip_Cir.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Hip_Cir.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Hip_Cir.compare)
## Warning: Removed 12 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 12 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 12 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 12 rows containing missing values or values outside the scale range
## (`geom_point()`).

Hip_Cir WAFR ancestry plot with box plot (Color):

Hip_Cir.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=Hip_Cir, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("Hip_Cir \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Hip_Cir Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
Hip_Cir.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Hip_Cir.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Hip_Cir.compare)
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 12 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 12 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 12 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 12 rows containing missing values or values outside the scale range
## (`geom_point()`).

Hip_Cir EURO ancestry plot with mean bar:

Hip_Cir.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=Hip_Cir)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("Hip_Cir \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Hip_Cir Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
Hip_Cir.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Hip_Cir.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Hip_Cir.compare)
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 5 rows containing missing values or values outside the scale range
## (`geom_point()`).

Hip_Cir EURO ancestry plot with box plot (Color):

Hip_Cir.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=Hip_Cir, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("Hip_Cir \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Hip_Cir Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
Hip_Cir.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Hip_Cir.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Hip_Cir.compare)
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 5 rows containing missing values or values outside the scale range
## (`geom_point()`).

Hip_Cir NATAM ancestry plot with mean bar:

Hip_Cir.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=Hip_Cir)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("Hip_Cir \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Hip_Cir Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
Hip_Cir.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Hip_Cir.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Hip_Cir.compare)
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 5 rows containing missing values or values outside the scale range
## (`geom_point()`).

Hip_Cir NATAM ancestry plot with box plot (Color):

Hip_Cir.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=Hip_Cir, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("Hip_Cir \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Hip_Cir Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
Hip_Cir.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Hip_Cir.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Hip_Cir.compare)
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 5 rows containing missing values or values outside the scale range
## (`geom_point()`).

——————-BMI———————

BMI WAFR ancestry plot with mean bar:

BMI.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=BMI)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("BMI \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("BMI Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
BMI.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
BMI.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = BMI.compare)
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

BMI WAFR ancestry plot with box plot (Color):

BMI.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=BMI, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("BMI \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("BMI Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
BMI.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
BMI.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = BMI.compare)
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

BMI EURO ancestry plot with mean bar:

BMI.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=BMI)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("BMI \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("BMI Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
BMI.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
BMI.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = BMI.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

BMI EURO ancestry plot with box plot (Color):

BMI.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=BMI, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("BMI \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("BMI Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
BMI.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
BMI.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = BMI.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

BMI NATAM ancestry plot with mean bar:

BMI.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=BMI)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("BMI \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("BMI Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
BMI.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
BMI.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = BMI.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

BMI NATAM ancestry plot with box plot (Color):

BMI.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=BMI, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("BMI \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("BMI Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
BMI.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
BMI.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = BMI.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

——————-HbA1c———————

HbA1c WAFR ancestry plot with mean bar:

HbA1c.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=HbA1c)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("HbA1c \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("HbA1c Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
HbA1c.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
HbA1c.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = HbA1c.compare)
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

HbA1c WAFR ancestry plot with box plot (Color):

HbA1c.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=HbA1c, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("HbA1c \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("HbA1c Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
HbA1c.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
HbA1c.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = HbA1c.compare)
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

HbA1c EURO ancestry plot with mean bar:

HbA1c.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=HbA1c)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("HbA1c \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("HbA1c Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
HbA1c.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
HbA1c.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = HbA1c.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

HbA1c EURO ancestry plot with box plot (Color):

HbA1c.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=HbA1c, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("HbA1c \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("HbA1c Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
HbA1c.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
HbA1c.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = HbA1c.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

HbA1c NATAM ancestry plot with mean bar:

HbA1c.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=HbA1c)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("HbA1c \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("HbA1c Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
HbA1c.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
HbA1c.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = HbA1c.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default

HbA1c NATAM ancestry plot with box plot (Color):

HbA1c.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=HbA1c, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("HbA1c \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("HbA1c Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
HbA1c.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
HbA1c.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = HbA1c.compare)
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default