The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

summaryByVisit

The function summaryByVisit() produces a table with descriptive statistics for continues 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 hypotetical lab-values: LDH, ANC and Lymphocytes. 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$arm<- c(rep("Arm A", 70), rep("Arm B", 80))

Basic table

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

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

Visit

N

N = 151

LDH

Visit 1

15

0.3 (-1.4, 1.3)

Visit 2

15

0.5 (-1.5, 1.9)

Visit 3

14

0.0 (-2.2, 1.4)

Visit 4

15

0.0 (-2.2, 1.1)

Visit 5

15

-0.1 (-2.0, 1.1)

Visit 6

15

-0.1 (-1.4, 2.4)

Visit 7

15

-0.2 (-1.7, 1.3)

Visit 8

15

0.4 (-1.7, 1.7)

Visit 9

15

0.0 (-1.8, 1.6)

Visit 10

15

-0.1 (-1.3, 1.1)

Lymphocytes

Visit 1

15

0.1 (-1.3, 1.5)

Visit 2

15

-0.1 (-1.5, 2.0)

Visit 3

15

0.0 (-1.7, 2.3)

Visit 4

15

0.3 (-1.4, 1.2)

Visit 5

15

0.5 (-1.5, 2.1)

Visit 6

15

-0.2 (-2.9, 1.7)

Visit 7

15

0.0 (-1.6, 1.9)

Visit 8

15

0.2 (-1.2, 1.3)

Visit 9

15

0.8 (-1.5, 1.7)

Visit 10

15

0.8 (-1.5, 2.5)

ANC

Visit 1

15

-0.8 (-1.5, 2.4)

Visit 2

15

-0.1 (-2.0, 1.5)

Visit 3

15

-0.2 (-2.0, 1.5)

Visit 4

15

0.2 (-1.6, 0.9)

Visit 5

15

-0.1 (-1.7, 2.0)

Visit 6

15

0.3 (-1.4, 1.2)

Visit 7

15

-0.2 (-1.9, 1.4)

Visit 8

15

0.4 (-2.2, 1.3)

Visit 9

15

0.0 (-3.4, 1.5)

Visit 10

15

0.2 (-1.6, 1.7)

1Median (Min, Max)

Add visit group

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

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

Visit

N = 151

LDH

Baseline

Visit 1

0.3 (-1.4, 1.3)

Visit 2

0.5 (-1.5, 1.9)

Treatment

Visit 3

0.0 (-2.2, 1.4)

Visit 4

0.0 (-2.2, 1.1)

Follow-up

Visit 5

-0.1 (-2.0, 1.1)

Visit 6

-0.1 (-1.4, 2.4)

Visit 7

-0.2 (-1.7, 1.3)

Visit 8

0.4 (-1.7, 1.7)

Visit 9

0.0 (-1.8, 1.6)

Visit 10

-0.1 (-1.3, 1.1)

Lymphocytes

Baseline

Visit 1

0.1 (-1.3, 1.5)

Visit 2

-0.1 (-1.5, 2.0)

Treatment

Visit 3

0.0 (-1.7, 2.3)

Visit 4

0.3 (-1.4, 1.2)

Follow-up

Visit 5

0.5 (-1.5, 2.1)

Visit 6

-0.2 (-2.9, 1.7)

Visit 7

0.0 (-1.6, 1.9)

Visit 8

0.2 (-1.2, 1.3)

Visit 9

0.8 (-1.5, 1.7)

Visit 10

0.8 (-1.5, 2.5)

ANC

Baseline

Visit 1

-0.8 (-1.5, 2.4)

Visit 2

-0.1 (-2.0, 1.5)

Treatment

Visit 3

-0.2 (-2.0, 1.5)

Visit 4

0.2 (-1.6, 0.9)

Follow-up

Visit 5

-0.1 (-1.7, 2.0)

Visit 6

0.3 (-1.4, 1.2)

Visit 7

-0.2 (-1.9, 1.4)

Visit 8

0.4 (-2.2, 1.3)

Visit 9

0.0 (-3.4, 1.5)

Visit 10

0.2 (-1.6, 1.7)

1Median (Min, Max)

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.

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

Visit

Arm A
N = 71

Arm B
N = 81

LDH

Baseline

Visit 1

0.3 (-1.3, 1.3)

0.1 (-1.4, 1.2)

Visit 2

0.5 (-0.2, 1.8)

0.6 (-1.5, 1.9)

Treatment

Visit 3

0.3 (-2.2, 1.4)

0.0 (-1.0, 0.3)

Visit 4

-0.2 (-2.2, 0.5)

0.1 (-1.1, 1.1)

Follow-up

Visit 5

-0.5 (-2.0, 1.1)

0.0 (-1.4, 0.7)

Visit 6

-0.1 (-0.3, 1.1)

-0.9 (-1.4, 2.4)

Visit 7

0.0 (-1.0, 1.3)

-0.3 (-1.7, 0.8)

Visit 8

0.4 (-1.7, 1.7)

-0.2 (-1.7, 1.4)

Visit 9

0.0 (-1.2, 0.8)

0.1 (-1.8, 1.6)

Visit 10

0.1 (-1.3, 1.1)

-0.2 (-0.8, 1.0)

Lymphocytes

Baseline

Visit 1

-0.2 (-1.3, 1.5)

0.2 (-1.2, 0.7)

Visit 2

-0.1 (-1.4, 2.0)

0.3 (-1.5, 2.0)

Treatment

Visit 3

-0.2 (-1.7, 1.7)

0.4 (-0.4, 2.3)

Visit 4

0.3 (-0.8, 0.9)

0.1 (-1.4, 1.2)

Follow-up

Visit 5

-0.4 (-1.5, 0.8)

0.6 (-0.2, 2.1)

Visit 6

-1.1 (-2.9, 0.6)

0.2 (-2.2, 1.7)

Visit 7

0.5 (-1.4, 1.1)

-0.6 (-1.6, 1.9)

Visit 8

0.4 (-0.5, 0.8)

0.0 (-1.2, 1.3)

Visit 9

0.8 (-1.5, 1.0)

0.5 (-0.9, 1.7)

Visit 10

0.3 (-0.6, 2.5)

0.8 (-1.5, 1.3)

ANC

Baseline

Visit 1

-0.1 (-1.4, 2.0)

-0.8 (-1.5, 2.4)

Visit 2

-0.3 (-2.0, 1.5)

0.0 (-1.8, 1.2)

Treatment

Visit 3

-0.6 (-2.0, 0.2)

0.0 (-1.4, 1.5)

Visit 4

0.2 (-1.0, 0.7)

0.3 (-1.6, 0.9)

Follow-up

Visit 5

-0.4 (-1.7, 0.1)

0.1 (-0.8, 2.0)

Visit 6

0.3 (-1.4, 1.2)

0.2 (-1.4, 1.2)

Visit 7

-0.1 (-1.9, 0.6)

-0.2 (-1.5, 1.4)

Visit 8

0.7 (-0.5, 1.3)

0.1 (-2.2, 1.3)

Visit 9

-0.1 (-3.4, 1.5)

0.1 (-1.1, 1.1)

Visit 10

0.4 (-1.6, 1.3)

0.0 (-1.2, 1.7)

1Median (Min, Max)

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

Visit

Overall
N = 151

Arm A
N = 71

Arm B
N = 81

LDH

Baseline

Visit 1

0.3 (-1.4, 1.3)

0.3 (-1.3, 1.3)

0.1 (-1.4, 1.2)

Visit 2

0.5 (-1.5, 1.9)

0.5 (-0.2, 1.8)

0.6 (-1.5, 1.9)

Treatment

Visit 3

0.0 (-2.2, 1.4)

0.3 (-2.2, 1.4)

0.0 (-1.0, 0.3)

Visit 4

0.0 (-2.2, 1.1)

-0.2 (-2.2, 0.5)

0.1 (-1.1, 1.1)

Follow-up

Visit 5

-0.1 (-2.0, 1.1)

-0.5 (-2.0, 1.1)

0.0 (-1.4, 0.7)

Visit 6

-0.1 (-1.4, 2.4)

-0.1 (-0.3, 1.1)

-0.9 (-1.4, 2.4)

Visit 7

-0.2 (-1.7, 1.3)

0.0 (-1.0, 1.3)

-0.3 (-1.7, 0.8)

Visit 8

0.4 (-1.7, 1.7)

0.4 (-1.7, 1.7)

-0.2 (-1.7, 1.4)

Visit 9

0.0 (-1.8, 1.6)

0.0 (-1.2, 0.8)

0.1 (-1.8, 1.6)

Visit 10

-0.1 (-1.3, 1.1)

0.1 (-1.3, 1.1)

-0.2 (-0.8, 1.0)

Lymphocytes

Baseline

Visit 1

0.1 (-1.3, 1.5)

-0.2 (-1.3, 1.5)

0.2 (-1.2, 0.7)

Visit 2

-0.1 (-1.5, 2.0)

-0.1 (-1.4, 2.0)

0.3 (-1.5, 2.0)

Treatment

Visit 3

0.0 (-1.7, 2.3)

-0.2 (-1.7, 1.7)

0.4 (-0.4, 2.3)

Visit 4

0.3 (-1.4, 1.2)

0.3 (-0.8, 0.9)

0.1 (-1.4, 1.2)

Follow-up

Visit 5

0.5 (-1.5, 2.1)

-0.4 (-1.5, 0.8)

0.6 (-0.2, 2.1)

Visit 6

-0.2 (-2.9, 1.7)

-1.1 (-2.9, 0.6)

0.2 (-2.2, 1.7)

Visit 7

0.0 (-1.6, 1.9)

0.5 (-1.4, 1.1)

-0.6 (-1.6, 1.9)

Visit 8

0.2 (-1.2, 1.3)

0.4 (-0.5, 0.8)

0.0 (-1.2, 1.3)

Visit 9

0.8 (-1.5, 1.7)

0.8 (-1.5, 1.0)

0.5 (-0.9, 1.7)

Visit 10

0.8 (-1.5, 2.5)

0.3 (-0.6, 2.5)

0.8 (-1.5, 1.3)

ANC

Baseline

Visit 1

-0.8 (-1.5, 2.4)

-0.1 (-1.4, 2.0)

-0.8 (-1.5, 2.4)

Visit 2

-0.1 (-2.0, 1.5)

-0.3 (-2.0, 1.5)

0.0 (-1.8, 1.2)

Treatment

Visit 3

-0.2 (-2.0, 1.5)

-0.6 (-2.0, 0.2)

0.0 (-1.4, 1.5)

Visit 4

0.2 (-1.6, 0.9)

0.2 (-1.0, 0.7)

0.3 (-1.6, 0.9)

Follow-up

Visit 5

-0.1 (-1.7, 2.0)

-0.4 (-1.7, 0.1)

0.1 (-0.8, 2.0)

Visit 6

0.3 (-1.4, 1.2)

0.3 (-1.4, 1.2)

0.2 (-1.4, 1.2)

Visit 7

-0.2 (-1.9, 1.4)

-0.1 (-1.9, 0.6)

-0.2 (-1.5, 1.4)

Visit 8

0.4 (-2.2, 1.3)

0.7 (-0.5, 1.3)

0.1 (-2.2, 1.3)

Visit 9

0.0 (-3.4, 1.5)

-0.1 (-3.4, 1.5)

0.1 (-1.1, 1.1)

Visit 10

0.2 (-1.6, 1.7)

0.4 (-1.6, 1.3)

0.0 (-1.2, 1.7)

1Median (Min, Max)

Add N

Sample size can be shown for each column, if the option add_n is set to TRUE.

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

Visit

N

Overall
N = 151

N

Arm A
N = 71

N

Arm B
N = 81

LDH

Baseline

Visit 1

15

0.3 (-1.4, 1.3)

7

0.3 (-1.3, 1.3)

8

0.1 (-1.4, 1.2)

Visit 2

15

0.5 (-1.5, 1.9)

7

0.5 (-0.2, 1.8)

8

0.6 (-1.5, 1.9)

Treatment

Visit 3

14

0.0 (-2.2, 1.4)

6

0.3 (-2.2, 1.4)

8

0.0 (-1.0, 0.3)

Visit 4

15

0.0 (-2.2, 1.1)

7

-0.2 (-2.2, 0.5)

8

0.1 (-1.1, 1.1)

Follow-up

Visit 5

15

-0.1 (-2.0, 1.1)

7

-0.5 (-2.0, 1.1)

8

0.0 (-1.4, 0.7)

Visit 6

15

-0.1 (-1.4, 2.4)

7

-0.1 (-0.3, 1.1)

8

-0.9 (-1.4, 2.4)

Visit 7

15

-0.2 (-1.7, 1.3)

7

0.0 (-1.0, 1.3)

8

-0.3 (-1.7, 0.8)

Visit 8

15

0.4 (-1.7, 1.7)

7

0.4 (-1.7, 1.7)

8

-0.2 (-1.7, 1.4)

Visit 9

15

0.0 (-1.8, 1.6)

7

0.0 (-1.2, 0.8)

8

0.1 (-1.8, 1.6)

Visit 10

15

-0.1 (-1.3, 1.1)

7

0.1 (-1.3, 1.1)

8

-0.2 (-0.8, 1.0)

Lymphocytes

Baseline

Visit 1

15

0.1 (-1.3, 1.5)

7

-0.2 (-1.3, 1.5)

8

0.2 (-1.2, 0.7)

Visit 2

15

-0.1 (-1.5, 2.0)

7

-0.1 (-1.4, 2.0)

8

0.3 (-1.5, 2.0)

Treatment

Visit 3

15

0.0 (-1.7, 2.3)

7

-0.2 (-1.7, 1.7)

8

0.4 (-0.4, 2.3)

Visit 4

15

0.3 (-1.4, 1.2)

7

0.3 (-0.8, 0.9)

8

0.1 (-1.4, 1.2)

Follow-up

Visit 5

15

0.5 (-1.5, 2.1)

7

-0.4 (-1.5, 0.8)

8

0.6 (-0.2, 2.1)

Visit 6

15

-0.2 (-2.9, 1.7)

7

-1.1 (-2.9, 0.6)

8

0.2 (-2.2, 1.7)

Visit 7

15

0.0 (-1.6, 1.9)

7

0.5 (-1.4, 1.1)

8

-0.6 (-1.6, 1.9)

Visit 8

15

0.2 (-1.2, 1.3)

7

0.4 (-0.5, 0.8)

8

0.0 (-1.2, 1.3)

Visit 9

15

0.8 (-1.5, 1.7)

7

0.8 (-1.5, 1.0)

8

0.5 (-0.9, 1.7)

Visit 10

15

0.8 (-1.5, 2.5)

7

0.3 (-0.6, 2.5)

8

0.8 (-1.5, 1.3)

ANC

Baseline

Visit 1

15

-0.8 (-1.5, 2.4)

7

-0.1 (-1.4, 2.0)

8

-0.8 (-1.5, 2.4)

Visit 2

15

-0.1 (-2.0, 1.5)

7

-0.3 (-2.0, 1.5)

8

0.0 (-1.8, 1.2)

Treatment

Visit 3

15

-0.2 (-2.0, 1.5)

7

-0.6 (-2.0, 0.2)

8

0.0 (-1.4, 1.5)

Visit 4

15

0.2 (-1.6, 0.9)

7

0.2 (-1.0, 0.7)

8

0.3 (-1.6, 0.9)

Follow-up

Visit 5

15

-0.1 (-1.7, 2.0)

7

-0.4 (-1.7, 0.1)

8

0.1 (-0.8, 2.0)

Visit 6

15

0.3 (-1.4, 1.2)

7

0.3 (-1.4, 1.2)

8

0.2 (-1.4, 1.2)

Visit 7

15

-0.2 (-1.9, 1.4)

7

-0.1 (-1.9, 0.6)

8

-0.2 (-1.5, 1.4)

Visit 8

15

0.4 (-2.2, 1.3)

7

0.7 (-0.5, 1.3)

8

0.1 (-2.2, 1.3)

Visit 9

15

0.0 (-3.4, 1.5)

7

-0.1 (-3.4, 1.5)

8

0.1 (-1.1, 1.1)

Visit 10

15

0.2 (-1.6, 1.7)

7

0.4 (-1.6, 1.3)

8

0.0 (-1.2, 1.7)

1Median (Min, Max)

Further steps:

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.