summaryByVisit

The function summaryByVisit() produces a table with descriptive statistics for continuous and categorical variables at different time points (visits). It is largely based on the function gtsummary::tbl_summary() and gtsummary::tbl_strata_nested_stack. The changes as compared to these functions are:

Setup and data

To demonstrate the various functionalities of the function, we will create a small dataset. We have three hypothetical lab-values: LDH, ANC and Lymphocytes and two categorical variables, grade and stage. Each lab-value has been measured at 10 time points (visits), which can further be divided into three visit groups (baseline, treatment and follow-up). In addition, we have a grouping variable called ‘arm’.

data<-NULL
visit <- c(paste0(rep("Visit ", 10), rbind(c(1:10))),
           paste0(rep("Visit ", 10), rbind(c(1:10))),
           paste0(rep("Visit ", 10), rbind(c(1:10))))
data <- as.data.frame(cbind( visit, rnorm(30)))
data<-as.data.frame(rbind(data, data, data, data, data))
data$visitgroup<- ifelse(data$visit %in% c("Visit 1", "Visit 2"), "Baseline", ifelse(data$visit %in% c("Visit 3", "Visit 4"), "Treatment", "Follow-up"))
data$visitgroup<-factor(data$visitgroup, levels = c("Baseline", "Treatment", "Follow-up"))
data$LDH<-rnorm(150)
data$Lymphocytes<-rnorm(150)
data$ANC<-rnorm(150)
data$LDH[3]<-NA
data$stage <- c(rep("II", 75), rep("I", 75))
data$stage <- ifelse(data$Lymphocytes>1.5, NA, data$stage)
data$grade <- c(rep("IV", 50), rep("III", 50), rep("II", 25), rep("I", 25))
data$arm<- c(rep("Arm A", 70), rep("Arm B", 80))

Basic table

Now, we use summarySCI::summaryByVisit to create a summary table for median and range of each lab-value by visit.

summaryByVisit(data = data,
         vars = c("LDH", "Lymphocytes", "stage"),
         visit = "visit", 
         add_n = TRUE)

Visit

N1

N = 152

LDH

Visit 1

15

-0.8 (-2.5, 0.8)

Visit 2

15

0.1 (-2.1, 2.2)

Visit 3

14

-0.6 (-1.9, 2.7)

Visit 4

15

0.5 (-1.8, 3.0)

Visit 5

15

0.3 (-0.5, 2.3)

Visit 6

15

0.0 (-2.4, 1.6)

Visit 7

15

0.2 (-0.6, 2.2)

Visit 8

15

-0.1 (-1.7, 1.3)

Visit 9

15

0.2 (-3.1, 1.3)

Visit 10

15

0.0 (-2.6, 2.3)

Lymphocytes

Visit 1

15

0.1 (-1.9, 1.3)

Visit 2

15

0.1 (-1.5, 1.4)

Visit 3

15

0.6 (-2.0, 1.8)

Visit 4

15

0.2 (-1.5, 2.1)

Visit 5

15

0.1 (-0.9, 1.7)

Visit 6

15

-0.3 (-1.1, 1.1)

Visit 7

15

-0.1 (-1.2, 1.4)

Visit 8

15

0.5 (-1.3, 1.8)

Visit 9

15

-0.1 (-1.3, 1.4)

Visit 10

15

0.2 (-1.5, 1.4)

stage

Visit 1

15

I

7 (47%)

II

8 (53%)

Visit 2

15

I

7 (47%)

II

8 (53%)

Visit 3

13

I

5 (33%)

II

8 (53%)

Missing

2 (13%)

Visit 4

14

I

7 (47%)

II

7 (47%)

Missing

1 (7%)

Visit 5

14

I

7 (47%)

II

7 (47%)

Missing

1 (7%)

Visit 6

15

I

8 (53%)

II

7 (47%)

Visit 7

15

I

8 (53%)

II

7 (47%)

Visit 8

12

I

6 (40%)

II

6 (40%)

Missing

3 (20%)

Visit 9

15

I

8 (53%)

II

7 (47%)

Visit 10

15

I

8 (53%)

II

7 (47%)

1N without missing values

2Median (Min, Max); n (%)

Add visit group

We can add the visit group to group visits accordingly. Visitgroup needs to be an ordered factor.

summaryByVisit(data,
         vars = c("LDH", "Lymphocytes", "stage"),
         visitgroup = "visitgroup",
         visit = "visit")

Visit

N1

N = 152

LDH

Baseline

Visit 1

15

-0.8 (-2.5, 0.8)

Visit 2

15

0.1 (-2.1, 2.2)

Treatment

Visit 3

14

-0.6 (-1.9, 2.7)

Visit 4

15

0.5 (-1.8, 3.0)

Follow-up

Visit 5

15

0.3 (-0.5, 2.3)

Visit 6

15

0.0 (-2.4, 1.6)

Visit 7

15

0.2 (-0.6, 2.2)

Visit 8

15

-0.1 (-1.7, 1.3)

Visit 9

15

0.2 (-3.1, 1.3)

Visit 10

15

0.0 (-2.6, 2.3)

Lymphocytes

Baseline

Visit 1

15

0.1 (-1.9, 1.3)

Visit 2

15

0.1 (-1.5, 1.4)

Treatment

Visit 3

15

0.6 (-2.0, 1.8)

Visit 4

15

0.2 (-1.5, 2.1)

Follow-up

Visit 5

15

0.1 (-0.9, 1.7)

Visit 6

15

-0.3 (-1.1, 1.1)

Visit 7

15

-0.1 (-1.2, 1.4)

Visit 8

15

0.5 (-1.3, 1.8)

Visit 9

15

-0.1 (-1.3, 1.4)

Visit 10

15

0.2 (-1.5, 1.4)

stage

Baseline

Visit 1

15

I

7 (47%)

II

8 (53%)

Visit 2

15

I

7 (47%)

II

8 (53%)

Treatment

Visit 3

13

I

5 (33%)

II

8 (53%)

Missing

2 (13%)

Visit 4

14

I

7 (47%)

II

7 (47%)

Missing

1 (7%)

Follow-up

Visit 5

14

I

7 (47%)

II

7 (47%)

Missing

1 (7%)

Visit 6

15

I

8 (53%)

II

7 (47%)

Visit 7

15

I

8 (53%)

II

7 (47%)

Visit 8

12

I

6 (40%)

II

6 (40%)

Missing

3 (20%)

Visit 9

15

I

8 (53%)

II

7 (47%)

Visit 10

15

I

8 (53%)

II

7 (47%)

1N without missing values

2Median (Min, Max); n (%)

By group

We can stratify the table by groups via the group argument. The overall column can still be shown if desired, using the overall = TRUE argument. A maximum of 3 groups are supported (for now).

summaryByVisit(data = data,
         vars = c("LDH", "Lymphocytes", "stage"),
         group = "arm",
         visitgroup = "visitgroup",
         visit = "visit")

Visit

N1

Arm A
N = 72

N1

Arm B
N = 82

LDH

Baseline

Visit 1

7

-0.8 (-2.5, 0.8)

8

-1.0 (-2.2, 0.7)

Visit 2

7

0.3 (-1.4, 0.8)

8

0.0 (-2.1, 2.2)

Treatment

Visit 3

6

-0.8 (-1.9, 2.7)

8

-0.6 (-1.1, 2.0)

Visit 4

7

1.1 (-1.3, 1.6)

8

0.3 (-1.8, 3.0)

Follow-up

Visit 5

7

1.0 (-0.4, 2.3)

8

0.0 (-0.5, 0.6)

Visit 6

7

0.1 (-2.4, 0.9)

8

0.0 (-0.8, 1.6)

Visit 7

7

0.3 (-0.6, 1.1)

8

0.0 (-0.5, 2.2)

Visit 8

7

-0.3 (-1.7, -0.1)

8

0.1 (-0.9, 1.3)

Visit 9

7

-0.3 (-1.0, 0.7)

8

0.5 (-3.1, 1.3)

Visit 10

7

-0.3 (-1.5, 1.1)

8

0.3 (-2.6, 2.3)

Lymphocytes

Baseline

Visit 1

7

-0.1 (-1.1, 1.2)

8

0.1 (-1.9, 1.3)

Visit 2

7

0.1 (-1.5, 1.0)

8

0.2 (-1.5, 1.4)

Treatment

Visit 3

7

0.6 (-2.0, 1.5)

8

0.6 (-0.1, 1.8)

Visit 4

7

0.5 (-0.3, 2.1)

8

0.1 (-1.5, 1.4)

Follow-up

Visit 5

7

-0.2 (-0.5, 1.7)

8

0.2 (-0.9, 1.0)

Visit 6

7

0.2 (-0.6, 1.1)

8

-0.5 (-1.1, 0.8)

Visit 7

7

-0.6 (-0.7, 1.0)

8

0.0 (-1.2, 1.4)

Visit 8

7

-0.2 (-0.8, 1.8)

8

1.1 (-1.3, 1.8)

Visit 9

7

-0.1 (-0.3, 1.4)

8

-0.1 (-1.3, 1.3)

Visit 10

7

0.2 (-1.0, 1.0)

8

0.3 (-1.5, 1.4)

stage

Baseline

Visit 1

7

8

I

0 (0%)

7 (88%)

II

7 (100%)

1 (13%)

Visit 2

7

8

I

0 (0%)

7 (88%)

II

7 (100%)

1 (13%)

Treatment

Visit 3

7

6

I

0 (0%)

5 (63%)

II

7 (100%)

1 (13%)

Missing

0 (0%)

2 (25%)

Visit 4

6

8

I

0 (0%)

7 (88%)

II

6 (86%)

1 (13%)

Missing

1 (14%)

0 (0%)

Follow-up

Visit 5

6

8

I

0 (0%)

7 (88%)

II

6 (86%)

1 (13%)

Missing

1 (14%)

0 (0%)

Visit 6

7

8

I

0 (0%)

8 (100%)

II

7 (100%)

0 (0%)

Visit 7

7

8

I

0 (0%)

8 (100%)

II

7 (100%)

0 (0%)

Visit 8

6

6

I

0 (0%)

6 (75%)

II

6 (86%)

0 (0%)

Missing

1 (14%)

2 (25%)

Visit 9

7

8

I

0 (0%)

8 (100%)

II

7 (100%)

0 (0%)

Visit 10

7

8

I

0 (0%)

8 (100%)

II

7 (100%)

0 (0%)

1N without missing values

2Median (Min, Max); n (%)

summaryByVisit(data,
         vars = c("LDH", "Lymphocytes", "stage"),
         group = "arm",
         overall = TRUE,
         visitgroup = "visitgroup",
         visit = "visit")

Visit

N1

Arm A
N = 72

N1

Arm B
N = 82

N1

Overall
N = 152

LDH

Baseline

Visit 1

7

-0.8 (-2.5, 0.8)

8

-1.0 (-2.2, 0.7)

15

-0.8 (-2.5, 0.8)

Visit 2

7

0.3 (-1.4, 0.8)

8

0.0 (-2.1, 2.2)

15

0.1 (-2.1, 2.2)

Treatment

Visit 3

6

-0.8 (-1.9, 2.7)

8

-0.6 (-1.1, 2.0)

14

-0.6 (-1.9, 2.7)

Visit 4

7

1.1 (-1.3, 1.6)

8

0.3 (-1.8, 3.0)

15

0.5 (-1.8, 3.0)

Follow-up

Visit 5

7

1.0 (-0.4, 2.3)

8

0.0 (-0.5, 0.6)

15

0.3 (-0.5, 2.3)

Visit 6

7

0.1 (-2.4, 0.9)

8

0.0 (-0.8, 1.6)

15

0.0 (-2.4, 1.6)

Visit 7

7

0.3 (-0.6, 1.1)

8

0.0 (-0.5, 2.2)

15

0.2 (-0.6, 2.2)

Visit 8

7

-0.3 (-1.7, -0.1)

8

0.1 (-0.9, 1.3)

15

-0.1 (-1.7, 1.3)

Visit 9

7

-0.3 (-1.0, 0.7)

8

0.5 (-3.1, 1.3)

15

0.2 (-3.1, 1.3)

Visit 10

7

-0.3 (-1.5, 1.1)

8

0.3 (-2.6, 2.3)

15

0.0 (-2.6, 2.3)

Lymphocytes

Baseline

Visit 1

7

-0.1 (-1.1, 1.2)

8

0.1 (-1.9, 1.3)

15

0.1 (-1.9, 1.3)

Visit 2

7

0.1 (-1.5, 1.0)

8

0.2 (-1.5, 1.4)

15

0.1 (-1.5, 1.4)

Treatment

Visit 3

7

0.6 (-2.0, 1.5)

8

0.6 (-0.1, 1.8)

15

0.6 (-2.0, 1.8)

Visit 4

7

0.5 (-0.3, 2.1)

8

0.1 (-1.5, 1.4)

15

0.2 (-1.5, 2.1)

Follow-up

Visit 5

7

-0.2 (-0.5, 1.7)

8

0.2 (-0.9, 1.0)

15

0.1 (-0.9, 1.7)

Visit 6

7

0.2 (-0.6, 1.1)

8

-0.5 (-1.1, 0.8)

15

-0.3 (-1.1, 1.1)

Visit 7

7

-0.6 (-0.7, 1.0)

8

0.0 (-1.2, 1.4)

15

-0.1 (-1.2, 1.4)

Visit 8

7

-0.2 (-0.8, 1.8)

8

1.1 (-1.3, 1.8)

15

0.5 (-1.3, 1.8)

Visit 9

7

-0.1 (-0.3, 1.4)

8

-0.1 (-1.3, 1.3)

15

-0.1 (-1.3, 1.4)

Visit 10

7

0.2 (-1.0, 1.0)

8

0.3 (-1.5, 1.4)

15

0.2 (-1.5, 1.4)

stage

Baseline

Visit 1

7

8

15

I

0 (0%)

7 (88%)

7 (47%)

II

7 (100%)

1 (13%)

8 (53%)

Visit 2

7

8

15

I

0 (0%)

7 (88%)

7 (47%)

II

7 (100%)

1 (13%)

8 (53%)

Treatment

Visit 3

7

6

13

I

0 (0%)

5 (63%)

5 (33%)

II

7 (100%)

1 (13%)

8 (53%)

Missing

0 (0%)

2 (25%)

2 (13%)

Visit 4

6

8

14

I

0 (0%)

7 (88%)

7 (47%)

II

6 (86%)

1 (13%)

7 (47%)

Missing

1 (14%)

0 (0%)

1 (7%)

Follow-up

Visit 5

6

8

14

I

0 (0%)

7 (88%)

7 (47%)

II

6 (86%)

1 (13%)

7 (47%)

Missing

1 (14%)

0 (0%)

1 (7%)

Visit 6

7

8

15

I

0 (0%)

8 (100%)

8 (53%)

II

7 (100%)

0 (0%)

7 (47%)

Visit 7

7

8

15

I

0 (0%)

8 (100%)

8 (53%)

II

7 (100%)

0 (0%)

7 (47%)

Visit 8

6

6

12

I

0 (0%)

6 (75%)

6 (40%)

II

6 (86%)

0 (0%)

6 (40%)

Missing

1 (14%)

2 (25%)

3 (20%)

Visit 9

7

8

15

I

0 (0%)

8 (100%)

8 (53%)

II

7 (100%)

0 (0%)

7 (47%)

Visit 10

7

8

15

I

0 (0%)

8 (100%)

8 (53%)

II

7 (100%)

0 (0%)

7 (47%)

1N without missing values

2Median (Min, Max); n (%)

Add N

Sample size for each column can be hidden if the option add_n is set to FALSE.

summaryByVisit(data,
         vars = c("LDH", "Lymphocytes", "stage"),
         group = "arm",
         overall = TRUE,
         visitgroup = "visitgroup",
         visit = "visit",
         add_n = FALSE)

Visit

Arm A
N = 71

Arm B
N = 81

Overall
N = 151

LDH

Baseline

Visit 1

-0.8 (-2.5, 0.8)

-1.0 (-2.2, 0.7)

-0.8 (-2.5, 0.8)

Visit 2

0.3 (-1.4, 0.8)

0.0 (-2.1, 2.2)

0.1 (-2.1, 2.2)

Treatment

Visit 3

-0.8 (-1.9, 2.7)

-0.6 (-1.1, 2.0)

-0.6 (-1.9, 2.7)

Visit 4

1.1 (-1.3, 1.6)

0.3 (-1.8, 3.0)

0.5 (-1.8, 3.0)

Follow-up

Visit 5

1.0 (-0.4, 2.3)

0.0 (-0.5, 0.6)

0.3 (-0.5, 2.3)

Visit 6

0.1 (-2.4, 0.9)

0.0 (-0.8, 1.6)

0.0 (-2.4, 1.6)

Visit 7

0.3 (-0.6, 1.1)

0.0 (-0.5, 2.2)

0.2 (-0.6, 2.2)

Visit 8

-0.3 (-1.7, -0.1)

0.1 (-0.9, 1.3)

-0.1 (-1.7, 1.3)

Visit 9

-0.3 (-1.0, 0.7)

0.5 (-3.1, 1.3)

0.2 (-3.1, 1.3)

Visit 10

-0.3 (-1.5, 1.1)

0.3 (-2.6, 2.3)

0.0 (-2.6, 2.3)

Lymphocytes

Baseline

Visit 1

-0.1 (-1.1, 1.2)

0.1 (-1.9, 1.3)

0.1 (-1.9, 1.3)

Visit 2

0.1 (-1.5, 1.0)

0.2 (-1.5, 1.4)

0.1 (-1.5, 1.4)

Treatment

Visit 3

0.6 (-2.0, 1.5)

0.6 (-0.1, 1.8)

0.6 (-2.0, 1.8)

Visit 4

0.5 (-0.3, 2.1)

0.1 (-1.5, 1.4)

0.2 (-1.5, 2.1)

Follow-up

Visit 5

-0.2 (-0.5, 1.7)

0.2 (-0.9, 1.0)

0.1 (-0.9, 1.7)

Visit 6

0.2 (-0.6, 1.1)

-0.5 (-1.1, 0.8)

-0.3 (-1.1, 1.1)

Visit 7

-0.6 (-0.7, 1.0)

0.0 (-1.2, 1.4)

-0.1 (-1.2, 1.4)

Visit 8

-0.2 (-0.8, 1.8)

1.1 (-1.3, 1.8)

0.5 (-1.3, 1.8)

Visit 9

-0.1 (-0.3, 1.4)

-0.1 (-1.3, 1.3)

-0.1 (-1.3, 1.4)

Visit 10

0.2 (-1.0, 1.0)

0.3 (-1.5, 1.4)

0.2 (-1.5, 1.4)

stage

Baseline

Visit 1

I

0 (0%)

7 (88%)

7 (47%)

II

7 (100%)

1 (13%)

8 (53%)

Visit 2

I

0 (0%)

7 (88%)

7 (47%)

II

7 (100%)

1 (13%)

8 (53%)

Treatment

Visit 3

I

0 (0%)

5 (63%)

5 (33%)

II

7 (100%)

1 (13%)

8 (53%)

Missing

0 (0%)

2 (25%)

2 (13%)

Visit 4

I

0 (0%)

7 (88%)

7 (47%)

II

6 (86%)

1 (13%)

7 (47%)

Missing

1 (14%)

0 (0%)

1 (7%)

Follow-up

Visit 5

I

0 (0%)

7 (88%)

7 (47%)

II

6 (86%)

1 (13%)

7 (47%)

Missing

1 (14%)

0 (0%)

1 (7%)

Visit 6

I

0 (0%)

8 (100%)

8 (53%)

II

7 (100%)

0 (0%)

7 (47%)

Visit 7

I

0 (0%)

8 (100%)

8 (53%)

II

7 (100%)

0 (0%)

7 (47%)

Visit 8

I

0 (0%)

6 (75%)

6 (40%)

II

6 (86%)

0 (0%)

6 (40%)

Missing

1 (14%)

2 (25%)

3 (20%)

Visit 9

I

0 (0%)

8 (100%)

8 (53%)

II

7 (100%)

0 (0%)

7 (47%)

Visit 10

I

0 (0%)

8 (100%)

8 (53%)

II

7 (100%)

0 (0%)

7 (47%)

1Median (Min, Max); n (%)

Change labels

The labels can be changed by using the “labels” statement.

summaryByVisit(data,
         vars = c("LDH", "Lymphocytes", "stage"),
         labels=list(LDH="LDH (g/L)", Lymphocytes="Lymphocytes (g)", stage="Stage"),
         group = "arm",
         overall = TRUE,
         visitgroup = "visitgroup",
         visit = "visit",
         add_n = TRUE)

Visit

N1

Arm A
N = 72

N1

Arm B
N = 82

N1

Overall
N = 152

LDH (g/L)

Baseline

Visit 1

7

-0.8 (-2.5, 0.8)

8

-1.0 (-2.2, 0.7)

15

-0.8 (-2.5, 0.8)

Visit 2

7

0.3 (-1.4, 0.8)

8

0.0 (-2.1, 2.2)

15

0.1 (-2.1, 2.2)

Treatment

Visit 3

6

-0.8 (-1.9, 2.7)

8

-0.6 (-1.1, 2.0)

14

-0.6 (-1.9, 2.7)

Visit 4

7

1.1 (-1.3, 1.6)

8

0.3 (-1.8, 3.0)

15

0.5 (-1.8, 3.0)

Follow-up

Visit 5

7

1.0 (-0.4, 2.3)

8

0.0 (-0.5, 0.6)

15

0.3 (-0.5, 2.3)

Visit 6

7

0.1 (-2.4, 0.9)

8

0.0 (-0.8, 1.6)

15

0.0 (-2.4, 1.6)

Visit 7

7

0.3 (-0.6, 1.1)

8

0.0 (-0.5, 2.2)

15

0.2 (-0.6, 2.2)

Visit 8

7

-0.3 (-1.7, -0.1)

8

0.1 (-0.9, 1.3)

15

-0.1 (-1.7, 1.3)

Visit 9

7

-0.3 (-1.0, 0.7)

8

0.5 (-3.1, 1.3)

15

0.2 (-3.1, 1.3)

Visit 10

7

-0.3 (-1.5, 1.1)

8

0.3 (-2.6, 2.3)

15

0.0 (-2.6, 2.3)

Lymphocytes (g)

Baseline

Visit 1

7

-0.1 (-1.1, 1.2)

8

0.1 (-1.9, 1.3)

15

0.1 (-1.9, 1.3)

Visit 2

7

0.1 (-1.5, 1.0)

8

0.2 (-1.5, 1.4)

15

0.1 (-1.5, 1.4)

Treatment

Visit 3

7

0.6 (-2.0, 1.5)

8

0.6 (-0.1, 1.8)

15

0.6 (-2.0, 1.8)

Visit 4

7

0.5 (-0.3, 2.1)

8

0.1 (-1.5, 1.4)

15

0.2 (-1.5, 2.1)

Follow-up

Visit 5

7

-0.2 (-0.5, 1.7)

8

0.2 (-0.9, 1.0)

15

0.1 (-0.9, 1.7)

Visit 6

7

0.2 (-0.6, 1.1)

8

-0.5 (-1.1, 0.8)

15

-0.3 (-1.1, 1.1)

Visit 7

7

-0.6 (-0.7, 1.0)

8

0.0 (-1.2, 1.4)

15

-0.1 (-1.2, 1.4)

Visit 8

7

-0.2 (-0.8, 1.8)

8

1.1 (-1.3, 1.8)

15

0.5 (-1.3, 1.8)

Visit 9

7

-0.1 (-0.3, 1.4)

8

-0.1 (-1.3, 1.3)

15

-0.1 (-1.3, 1.4)

Visit 10

7

0.2 (-1.0, 1.0)

8

0.3 (-1.5, 1.4)

15

0.2 (-1.5, 1.4)

Stage

Baseline

Visit 1

7

8

15

I

0 (0%)

7 (88%)

7 (47%)

II

7 (100%)

1 (13%)

8 (53%)

Visit 2

7

8

15

I

0 (0%)

7 (88%)

7 (47%)

II

7 (100%)

1 (13%)

8 (53%)

Treatment

Visit 3

7

6

13

I

0 (0%)

5 (63%)

5 (33%)

II

7 (100%)

1 (13%)

8 (53%)

Missing

0 (0%)

2 (25%)

2 (13%)

Visit 4

6

8

14

I

0 (0%)

7 (88%)

7 (47%)

II

6 (86%)

1 (13%)

7 (47%)

Missing

1 (14%)

0 (0%)

1 (7%)

Follow-up

Visit 5

6

8

14

I

0 (0%)

7 (88%)

7 (47%)

II

6 (86%)

1 (13%)

7 (47%)

Missing

1 (14%)

0 (0%)

1 (7%)

Visit 6

7

8

15

I

0 (0%)

8 (100%)

8 (53%)

II

7 (100%)

0 (0%)

7 (47%)

Visit 7

7

8

15

I

0 (0%)

8 (100%)

8 (53%)

II

7 (100%)

0 (0%)

7 (47%)

Visit 8

6

6

12

I

0 (0%)

6 (75%)

6 (40%)

II

6 (86%)

0 (0%)

6 (40%)

Missing

1 (14%)

2 (25%)

3 (20%)

Visit 9

7

8

15

I

0 (0%)

8 (100%)

8 (53%)

II

7 (100%)

0 (0%)

7 (47%)

Visit 10

7

8

15

I

0 (0%)

8 (100%)

8 (53%)

II

7 (100%)

0 (0%)

7 (47%)

1N without missing values

2Median (Min, Max); n (%)

Further steps: