From 49be5120bd2831c4d6a102fec20127befb5d5b61 Mon Sep 17 00:00:00 2001 From: Alan Haynes Date: Mon, 17 Feb 2025 11:11:57 +0100 Subject: [PATCH 1/5] logo --- README.Rmd | 3 +-- inst/dice.svg | 1 + inst/logo.R | 27 +++++++++++++++++++ man/figures/logo.png | Bin 0 -> 35896 bytes pkgdown/favicon/apple-touch-icon.png | Bin 0 -> 7716 bytes pkgdown/favicon/favicon-96x96.png | Bin 0 -> 3673 bytes pkgdown/favicon/favicon.ico | Bin 0 -> 15086 bytes pkgdown/favicon/favicon.svg | 3 +++ pkgdown/favicon/site.webmanifest | 21 +++++++++++++++ pkgdown/favicon/web-app-manifest-192x192.png | Bin 0 -> 8516 bytes pkgdown/favicon/web-app-manifest-512x512.png | Bin 0 -> 33967 bytes 11 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 inst/dice.svg create mode 100644 inst/logo.R create mode 100644 man/figures/logo.png create mode 100644 pkgdown/favicon/apple-touch-icon.png create mode 100644 pkgdown/favicon/favicon-96x96.png create mode 100644 pkgdown/favicon/favicon.ico create mode 100644 pkgdown/favicon/favicon.svg create mode 100644 pkgdown/favicon/site.webmanifest create mode 100644 pkgdown/favicon/web-app-manifest-192x192.png create mode 100644 pkgdown/favicon/web-app-manifest-512x512.png diff --git a/README.Rmd b/README.Rmd index 0a565cb..bc0ceb4 100644 --- a/README.Rmd +++ b/README.Rmd @@ -13,8 +13,7 @@ knitr::opts_chunk$set( ) ``` -# `randolist` - +# `randolist` diff --git a/inst/dice.svg b/inst/dice.svg new file mode 100644 index 0000000..77ef67e --- /dev/null +++ b/inst/dice.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/inst/logo.R b/inst/logo.R new file mode 100644 index 0000000..e5f4da9 --- /dev/null +++ b/inst/logo.R @@ -0,0 +1,27 @@ +library(ggplot2) +library(scales) +library(hexSticker) +install.packages('rsvg') +remotes::install_github('coolbutuseless/ggsvg') +library(ggsvg) + +svg_txt <- readLines("inst/dice.svg") +ap <- ggplot() + + geom_point_svg(data = data.frame(x = 1, y = 1), + aes(x, y), svg = svg_txt, size = 25) + + theme_void() + theme_transparent() +ap +s <- sticker(ap, package="", + s_x=1, s_y=1, s_width=2, s_height=2, + filename="man/figures/logo.png", + h_fill = colorRampPalette(c("white", CTUtemplate::unibeRed()))(6)[3], + h_color = CTUtemplate::unibeRed(), + h_size = 2, + url = "randolist", + u_size = 12, + u_x = 1, + u_y = 0.15 +) +s + +pkgdown::build_favicons(overwrite = TRUE) diff --git a/man/figures/logo.png b/man/figures/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c6ce49bb21cf18ca7855fb21364ff62a0da7d908 GIT binary patch literal 35896 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 literal 0 HcmV?d00001 diff --git a/pkgdown/favicon/apple-touch-icon.png b/pkgdown/favicon/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e29cffb25c2f1f92050598737bd7546c7dc0c7fc GIT binary patch literal 7716 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 literal 0 HcmV?d00001 diff --git a/pkgdown/favicon/favicon.svg b/pkgdown/favicon/favicon.svg new file mode 100644 index 0000000..301ea89 --- /dev/null +++ b/pkgdown/favicon/favicon.svg @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/pkgdown/favicon/site.webmanifest b/pkgdown/favicon/site.webmanifest new file mode 100644 index 0000000..4ebda26 --- /dev/null +++ b/pkgdown/favicon/site.webmanifest @@ -0,0 +1,21 @@ +{ + "name": "", + "short_name": "", + "icons": [ + { + "src": "/web-app-manifest-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "/web-app-manifest-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} \ No newline at end of file diff --git a/pkgdown/favicon/web-app-manifest-192x192.png b/pkgdown/favicon/web-app-manifest-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..3aab535454b32f1c341f48edfa62a828762e0271 GIT binary patch literal 8516 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 JduAB;e*j4Wuh#$o literal 0 HcmV?d00001 From ef640edd90e448117c316a6c6f7e4101140ec0dc Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Mon, 17 Feb 2025 10:15:59 +0000 Subject: [PATCH 2/5] Re-build README.Rmd --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 5a99544..bd403aa 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,8 @@ -# `randolist` +# `randolist` - [![](https://img.shields.io/badge/dev%20version-0.0.1.9000-blue.svg)](https://github.com/CTU-Bern/randolist) From 68eede50c67fbfc248a083def380c83808df5c35 Mon Sep 17 00:00:00 2001 From: Alan Haynes Date: Mon, 17 Feb 2025 16:44:15 +0100 Subject: [PATCH 3/5] summary method --- NAMESPACE | 1 + R/summary.R | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 R/summary.R diff --git a/NAMESPACE b/NAMESPACE index 0dc1b7f..ce7ba48 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,3 +1,4 @@ # Generated by roxygen2: do not edit by hand +S3method(summary,randolist) export(blockrand) diff --git a/R/summary.R b/R/summary.R new file mode 100644 index 0000000..9aa4196 --- /dev/null +++ b/R/summary.R @@ -0,0 +1,19 @@ +#' @export +summary.randolist <- function(object, ...){ + cat("Randomisation list\n") + cat("Number of randomizations: ", nrow(object), "\n") + cat("Number of blocks: ", length(unique(object$block)), "\n") + cat("Block sizes:") + print(table(object$blocksize[object$seq_in_block == 1])) + cat("Arms: ") + print(table(object$arm)) + invisible(object) +} + + + + + + + + From 449ecd3d5476159aee40f9f367842c73986b6a2f Mon Sep 17 00:00:00 2001 From: Alan Haynes Date: Mon, 17 Feb 2025 16:44:36 +0100 Subject: [PATCH 4/5] more testing and docs --- R/blockrand.R | 61 ++++++++++++++++++++++++--------- README.Rmd | 30 ++++++++++++++++ man/blockrand.Rd | 30 +++++++++++++--- tests/testthat/test-blockrand.R | 15 +++++++- 4 files changed, 115 insertions(+), 21 deletions(-) diff --git a/R/blockrand.R b/R/blockrand.R index 48cada6..4afe996 100644 --- a/R/blockrand.R +++ b/R/blockrand.R @@ -1,16 +1,39 @@ #' Block randomization #' -#' @param n total number of randomizations (within a single strata) +#' Generate a randomization list for a single stratum with blocks of varying sizes. +#' +#' By default, frequency of the different block sizes is determined using Pascal's +#' triangle. +#' This has the advantage that small and large block sizes are less common than +#' intermediate sized blocks, which helps with making it more difficult to guess +#' future allocations, and reduces the risk of finishing in the middle of a large +#' block. +#' +#' Unbalanced randomization is possible by specifying the same arm label multiple times. +#' +#' @param n total number of randomizations (within a single stratum) #' @param arms number of arms to randomise -#' @param blocksizes vector of numbers of each arm to include in blocks +#' @param blocksizes numbers of each arm to include in blocks #' @param pascal logical, whether to use pascal's triangle to determine block sizes #' #' @returns a data frame with columns block, blocksize, seq_in_block, arm #' @export #' #' @examples +#' set.seed(1) +#' blockrand(10) +#' +#' # different arm labels +#' blockrand(10, arms = c("Arm 1", "Arm 2")) +#' +#' # block sizes 2, 4, and 6, 2 arms +#' blockrand(20, blocksizes = 1:3) +#' +#' # unbalanced randomisation (2:1) +#' blockrand(12, arms = c("Arm 1", "Arm 1", "Arm 2")) #' -#' blockrand(100, blocksizes = c(1, 2)) +#' # fixed block sizes +#' blockrand(10, blocksizes = 2) #' blockrand <- function(n, arms = LETTERS[seq(2)], @@ -20,20 +43,23 @@ blockrand <- function(n, N_per_block <- blocksizes * length(arms) - if(pascal) { - p <- pascalprops(length(N_per_block)) - } else { - p <- rep(1 / length(N_per_block), length(N_per_block)) - } - - # estimate number of required blocks - min_blocks <- ceiling(n / min(N_per_block)) + if(length(blocksizes) > 1){ + if(pascal) { + p <- pascalprops(length(N_per_block)) + } else { + p <- rep(1 / length(N_per_block), length(N_per_block)) + } + # estimate number of required blocks + min_blocks <- ceiling(n / min(N_per_block)) - # generate block sizes - blocks <- sample(N_per_block, min_blocks, replace = TRUE, prob = p) + # generate block sizes + blocks <- sample(N_per_block, min_blocks, replace = TRUE, prob = p) - # select blocks to reach n - blocks <- blocks[1:min(which(cumsum(blocks) >= n))] + # select blocks to reach n + blocks <- blocks[1:min(which(cumsum(blocks) >= n))] + } else { + blocks <- rep(N_per_block, ceiling(n / sum(N_per_block))) + } # generate randomization rlist <- lapply(seq_along(blocks), function(i){ @@ -46,7 +72,10 @@ blockrand <- function(n, arm = sample(arms_i, blocks[i])) }) |> do.call(what = rbind) rlist$seq_in_list <- seq_len(nrow(rlist)) - rlist <- rlist[, c("seq_in_list", "block", "blocksize", "seq_in_block", "arm")] + rlist <- rlist[, c("seq_in_list", "block", "blocksize", + "seq_in_block", "arm")] + + class(rlist) <- c("randolist", class(rlist)) return(rlist) } diff --git a/README.Rmd b/README.Rmd index bc0ceb4..983c53a 100644 --- a/README.Rmd +++ b/README.Rmd @@ -39,3 +39,33 @@ remotes::install_github("CTU-Bern/randolist") + +## Generating randomization lists + +Load the package + +```{r} +library(randolist) +``` + + +### Unstratified randomization + +Where no strata are defined, the `blockrand` function can be used to create a randomization list. + +```{r} +blockrand(n = 10, + blocksizes = 1:2) +``` + +The treatment label is set via the `arms` argument. + +Block sizes are defined via the `blocksizes` argument. The above example creates a randomization list with blocks of 1 or 2 *of each arm* (so in practice, the block sizes are 2 and 4). + +Allocation schemes beyond 1:1 randomization are possible by specifying the `arms` argument, specifically by using the same arm label multiple times. + +```{r} +blockrand(n = 10, + blocksizes = 1:2, + arms = c("A", "A", "B")) +``` diff --git a/man/blockrand.Rd b/man/blockrand.Rd index 79c77bc..4d933e1 100644 --- a/man/blockrand.Rd +++ b/man/blockrand.Rd @@ -7,11 +7,11 @@ blockrand(n, arms = LETTERS[seq(2)], blocksizes = 1:4, pascal = TRUE) } \arguments{ -\item{n}{total number of randomizations (within a single strata)} +\item{n}{total number of randomizations (within a single stratum)} \item{arms}{number of arms to randomise} -\item{blocksizes}{vector of numbers of each arm to include in blocks} +\item{blocksizes}{numbers of each arm to include in blocks} \item{pascal}{logical, whether to use pascal's triangle to determine block sizes} } @@ -19,10 +19,32 @@ blockrand(n, arms = LETTERS[seq(2)], blocksizes = 1:4, pascal = TRUE) a data frame with columns block, blocksize, seq_in_block, arm } \description{ -Block randomization +Generate a randomization list for a single stratum with blocks of varying sizes. +} +\details{ +By default, frequency of the different block sizes is determined using Pascal's +triangle. +This has the advantage that small and large block sizes are less common than +intermediate sized blocks, which helps with making it more difficult to guess +future allocations, and reduces the risk of finishing in the middle of a large +block. + +Unbalanced randomization is possible by specifying the same arm label multiple times. } \examples{ +set.seed(1) +blockrand(10) + +# different arm labels +blockrand(10, arms = c("Arm 1", "Arm 2")) + +# block sizes 2, 4, and 6, 2 arms +blockrand(20, blocksizes = 1:3) + +# unbalanced randomisation (2:1) +blockrand(12, arms = c("Arm 1", "Arm 1", "Arm 2")) -blockrand(100, blocksizes = c(1, 2)) +# fixed block sizes +blockrand(10, blocksizes = 2) } diff --git a/tests/testthat/test-blockrand.R b/tests/testthat/test-blockrand.R index fa1b41d..8ec83e4 100644 --- a/tests/testthat/test-blockrand.R +++ b/tests/testthat/test-blockrand.R @@ -10,12 +10,19 @@ test_that("structure as expected", { c("seq_in_list", "block", "blocksize", "seq_in_block", "arm")) }) -test_that("seed produces consistent results", { +test_that("seed produces consistent results (within session)", { set.seed(1) res3 <- blockrand(100, blocksizes = c(1, 2)) expect_identical(res1, res3) }) +test_that("seed produces consistent results (across sessions/OSs)", { + expect_equal(res1$arm[1:10], + # sequence from AHs computer, 2025-02-17 + c("A", "A", "B", "B", "A", "B", "A", "B", "B", "A"), + ignore_attr = TRUE) +}) + test_that("number of randomizations is sufficient", { expect_true(nrow(res1) > 100) }) @@ -35,3 +42,9 @@ test_that("arm labels", { expect_true(all(res2$arm %in% c("Foo", "Bar"))) }) +test_that("single block size works", { + tmp <- blockrand(100, blocksizes = 2) + expect_true(all(tmp$blocksize == 4)) + expect_true(max(tmp$block) == 25) +}) + From f88b4cc20b6ba8bf1be4de94f082e958567900c6 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 18 Feb 2025 07:46:54 +0000 Subject: [PATCH 5/5] Re-build README.Rmd --- README.md | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/README.md b/README.md index bd403aa..0d5bf67 100644 --- a/README.md +++ b/README.md @@ -27,3 +27,66 @@ remotes::install_github("CTU-Bern/randolist") + +## Generating randomization lists + +Load the package + +``` r +library(randolist) +``` + +### Unstratified randomization + +Where no strata are defined, the `blockrand` function can be used to +create a randomization list. + +``` r +blockrand(n = 10, + blocksizes = 1:2) +#> seq_in_list block blocksize seq_in_block arm +#> 1 1 1 4 1 B +#> 2 2 1 4 2 B +#> 3 3 1 4 3 A +#> 4 4 1 4 4 A +#> 5 5 2 2 1 A +#> 6 6 2 2 2 B +#> 7 7 3 2 1 B +#> 8 8 3 2 2 A +#> 9 9 4 4 1 B +#> 10 10 4 4 2 A +#> 11 11 4 4 3 A +#> 12 12 4 4 4 B +``` + +The treatment label is set via the `arms` argument. + +Block sizes are defined via the `blocksizes` argument. The above example +creates a randomization list with blocks of 1 or 2 *of each arm* (so in +practice, the block sizes are 2 and 4). + +Allocation schemes beyond 1:1 randomization are possible by specifying +the `arms` argument, specifically by using the same arm label multiple +times. + +``` r +blockrand(n = 10, + blocksizes = 1:2, + arms = c("A", "A", "B")) +#> seq_in_list block blocksize seq_in_block arm +#> 1 1 1 3 1 A +#> 2 2 1 3 2 B +#> 3 3 1 3 3 A +#> 4 4 2 6 1 A +#> 5 5 2 6 2 A +#> 6 6 2 6 3 A +#> 7 7 2 6 4 B +#> 8 8 2 6 5 A +#> 9 9 2 6 6 B +#> 10 10 3 6 1 A +#> 11 11 3 6 2 B +#> 12 12 3 6 3 A +#> 13 13 3 6 4 A +#> 14 14 3 6 5 A +#> 15 15 3 6 6 B +```