## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  echo = TRUE,
  eval = TRUE,
  fig.height = 6,
  fig.width = 9,
  fig.align='center'
)

## ----setup, echo = FALSE, message = FALSE, warning = FALSE--------------------
library(dplyr)
library(summarySCI)

## ----message = FALSE----------------------------------------------------------
library(summarySCI)
data(hemoglobin_data)
hemoglobin <- hemoglobin_data

## ----echo = FALSE-------------------------------------------------------------
n_patients <- length(unique(hemoglobin$ID))
n_timepoints <- length(unique(hemoglobin$visit_nr))

## -----------------------------------------------------------------------------
head(hemoglobin)

## -----------------------------------------------------------------------------
boxplotSCI(data = hemoglobin, 
                  var = hb, 
                  order = visit_nr, 
                  group = Arm, 
                  main = "Boxplots for the two groups", 
                  legend_position = "topleft")

## -----------------------------------------------------------------------------
hemoglobin$Arm <- factor(hemoglobin$Arm, levels = c("Arm B", 
                                                "Arm A"))

boxplotSCI(data = hemoglobin, 
                  var = hb, 
                  order = visit_nr, 
                  group = Arm, 
                  main = "Reversed treatment order", 
                  legend_position = "topright")


## -----------------------------------------------------------------------------
# back to original order
hemoglobin$Arm <- factor(hemoglobin$Arm, levels = c("Arm A", 
                                                "Arm B"))

boxplotSCI(data = hemoglobin, 
                  var = hb, 
                  order = visit_nr, 
                  group = Arm, 
                  group_names = c("Treatment (Arm A)", "Control (Arm B)"), 
                  group_names_short = c("A", "B"),
                  main = "Customization of group names", 
                  legend_position = "topright")


## ----fig.width = 10-----------------------------------------------------------
boxplotSCI(data = hemoglobin[hemoglobin$Arm == "Arm A", ], # Only treatment
                  var = hb, 
                  order = visit_nr,
                  main = "Only treatment group")

## -----------------------------------------------------------------------------
hemoglobin$visit <- factor(hemoglobin$visit,
                           levels = c("Cycle 1", "Cycle 2", "Cycle 3", 
                                      "Cycle 4", "Cycle 5", "Cycle 6", 
                                      "Cycle 7", "Cycle 8", "Cycle 9"))

## -----------------------------------------------------------------------------
boxplotSCI(data = hemoglobin, 
                  var = hb, 
                  order = visit, 
                  group = Arm, 
                  group_names = c("Treatment (Arm A)", "Control (Arm B)"), 
                  group_names_short = c("A", "B"),
                  main = "Time points as factor", 
                  legend_position = "topleft"
                  )


## -----------------------------------------------------------------------------

boxplotSCI(data = hemoglobin, 
                  var = hb, 
                  order = visit_nr, 
                  visit = visit,
                  group = Arm, 
                  group_names = c("Treatment (Arm A)", "Control (Arm B)"), 
                  group_names_short = c("A", "B"),
                  main = "Time points as factor", 
                  legend_position = "topleft"
                  )


## -----------------------------------------------------------------------------
boxplotSCI(data = hemoglobin, 
                  var = hb, 
                  order = visit_nr, 
                  group = Arm, 
                  # short names
                  group_names = c("Treatment (Arm A)", "Control (Arm B)"), 
                  group_names_short = c("A", "B"),
                  # Title
                  main = "Hemoglobin over time", 
                  # Legend position
                  legend_position = "bottomright",
                  # Legend size
                  legend_cex = 0.75, 
                  # Legend box
                  legend_bty = "o"
                  )


## -----------------------------------------------------------------------------

boxplotSCI(data = hemoglobin, 
                  var = hb, 
                  order = visit_nr, 
                  group = Arm, 
                  # short names
                  group_names = c("Treatment (Arm A)", "Control (Arm B)"), 
                  group_names_short = c("A", "B"),
                  # Title
                  main = "Hemoglobin over time", 
                  # Col of boxes
                  col = c("lightblue", "orange"),
                  # Width of boxes
                  boxwex = 0.2, 
                  #Space between boxes
                  shift = 0.15,
                  # Legend position
                  legend_position = "topleft",
                  )


## -----------------------------------------------------------------------------
par(las = 1)
boxplotSCI(data = hemoglobin, 
                  var = hb, 
                  order = visit_nr, 
                  group = Arm, 
                  group_names = c("Treatment (Arm A)", "Control (Arm B)"), 
                  group_names_short = c("A", "B"),
                  # Title
                  main = "Hemoglobin over time", 
                  # X axis label
                  xlab = "Visits", 
                  # X axis position
                  xlab_position = 0,
                  # Y axis label
                  ylab = "Score",
                  # Size of axis labels
                  cex_lab = 1.2,
                  # Size of axes
                  cex_axis = 1.1,
                  # Size of number of patients
                  cex_n_patients = 0.9,
                  # Y axis limit
                  ylim = c(80, 200),
                  # Y axis ticks
                  y_ticks = seq(80, 180, by = 10),
                  legend_position = "topleft"
                  )


## -----------------------------------------------------------------------------

boxplotSCI(data = hemoglobin, 
                  var = hb, 
                  order = visit_nr, 
                  group = Arm, 
                  group_names = c("Treatment (Arm A)", "Control (Arm B)"), 
                  group_names_short = c("A", "B"),
                  # Title
                  main = "Hemoglobin over time", 
                  # Col of boxes
                  col = c("lightblue", "orange"),
                  # X axis label
                  xlab = "Visits", 
                  # X axis position
                  xlab_position = 0,
                  # Y axis label
                  ylab = "Score",
                  lines = c(90, 120, 160), 
                  # Col of lines
                  col_lines = c("red", "grey", "red"), 
                  # Type of lines
                  lty = c(2, 3, 2)
                  )


## -----------------------------------------------------------------------------
par(las = 1)
boxplotSCI(data = hemoglobin[hemoglobin$visit_nr == 4, ], 
                  var = hb, 
                  # order = visit_nr, 
                  group = Arm, 
                  main = "Only one time point"
                  )


## -----------------------------------------------------------------------------
 
hemoglobin_2 <- hemoglobin[!(hemoglobin$Arm == "Arm A" & hemoglobin$visit_nr == 8), ]


# numeric
boxplotSCI(data = hemoglobin_2,
                var = hb,
                order = visit_nr,
                group_names = c("Treatment (Arm A)", "Control (Arm B)"), 
                group_names_short = c("A", "B"),
                group = Arm,
                main = "Boxplots for the two groups", 
                legend_position = "topleft", 
                missing_nr = 0)


## -----------------------------------------------------------------------------


hemoglobin_3 <- hemoglobin[!(hemoglobin$Arm == "Arm B" & hemoglobin$visit_nr > 4), ]


# numeric
boxplotSCI(data = hemoglobin_3,
                var = hb,
                order = visit_nr,
                group_names = c("Treatment (Arm A)", "Control (Arm B)"), 
                group_names_short = c("A", "B"),
                group = Arm,
                main = "Boxplots for the two groups", 
                legend_position = "topleft", 
                missing_nr = NA)




