Skip to contents

ras.Randomizer creates multiple series of groups each with randomly sampled observations. Observations are distributed such as that there are no repeated entries between groups/within a series.

Number of groups in a series is calculated as length(master_list) divided by group_size, rounded up to nearest integer. If an observation can not be found (for example because the groups can not be filled evenly) an error message is printed to the console and N/A inserted instead.

# Example with 4 even groups
# Compound list
Compound_list = c(
  "Comp_1", "Comp_2", "Comp_3", "Comp_4", "Comp_5",
  "Comp_6", "Comp_7", "Comp_8", "Comp_9", "Comp_10",
  "Comp_11", "Comp_12", "Comp_13", "Comp_14", "Comp_15",
  "Comp_16", "Comp_17", "Comp_18", "Comp_19", "Comp_20",
  "Comp_21", "Comp_22", "Comp_23", "Comp_24")

series_A = ras.Randomizer(compound_list = Compound_list,
                          group_size = 6,
                          series = 2)
print("+++++ Series A +++++")
#> [1] "+++++ Series A +++++"
series_A
#> $Series_01
#>   Group_01 Group_02 Group_03 Group_04
#> 1  Comp_16   Comp_5  Comp_18  Comp_20
#> 2  Comp_19   Comp_1   Comp_7   Comp_4
#> 3  Comp_24   Comp_6  Comp_21   Comp_8
#> 4   Comp_9  Comp_13  Comp_14   Comp_2
#> 5   Comp_3  Comp_12  Comp_10  Comp_23
#> 6  Comp_22  Comp_15  Comp_11  Comp_17
#> 
#> $Series_02
#>   Group_01 Group_02 Group_03 Group_04
#> 1   Comp_7   Comp_2   Comp_4  Comp_17
#> 2  Comp_23   Comp_3  Comp_10  Comp_15
#> 3  Comp_13   Comp_5   Comp_6  Comp_22
#> 4  Comp_24  Comp_16  Comp_14  Comp_20
#> 5  Comp_21  Comp_11  Comp_18   Comp_9
#> 6   Comp_8  Comp_19  Comp_12   Comp_1

# Example with 5 uneven groups
# Compound list
Compound_list = c(
  "Comp_1", "Comp_2", "Comp_3", "Comp_4", "Comp_5",
  "Comp_6", "Comp_7", "Comp_8", "Comp_9", "Comp_10",
  "Comp_11", "Comp_12", "Comp_13", "Comp_14", "Comp_15",
  "Comp_16", "Comp_17", "Comp_18", "Comp_19", "Comp_20",
  "Comp_21", "Comp_22", "Comp_23", "Comp_24")

series_B = ras.Randomizer(Compound_list,
                          group_size = 5,
                          series = 2)
#> [1] "Error: Tried 100 times but couldn't select a random observation that met the criteria. Are the groups unevenly sized?"
#> [1] "Error: Tried 100 times but couldn't select a random observation that met the criteria. Are the groups unevenly sized?"
print("+++++ Series B +++++")
#> [1] "+++++ Series B +++++"
series_B
#> $Series_01
#>   Group_01 Group_02 Group_03 Group_04 Group_05
#> 1   Comp_1  Comp_16  Comp_15  Comp_10  Comp_11
#> 2  Comp_24   Comp_9  Comp_14  Comp_22  Comp_21
#> 3   Comp_8  Comp_20   Comp_5   Comp_2  Comp_12
#> 4  Comp_17   Comp_4  Comp_18   Comp_6   Comp_7
#> 5   Comp_3  Comp_19  Comp_13  Comp_23      N/A
#> 
#> $Series_02
#>   Group_01 Group_02 Group_03 Group_04 Group_05
#> 1  Comp_14   Comp_5   Comp_3   Comp_2  Comp_11
#> 2  Comp_21  Comp_22  Comp_19  Comp_24  Comp_17
#> 3  Comp_10   Comp_1   Comp_9   Comp_7   Comp_8
#> 4  Comp_16  Comp_23  Comp_15   Comp_6   Comp_4
#> 5  Comp_12  Comp_20  Comp_13  Comp_18      N/A

# Example of writing to .xlsx file
  # Don't run
# Series_P = ras.Randomizer(Compound_list,
#                           group_size = 5,
#                           series = 2,
#                           write = TRUE,
#                           fileName = "Series_P Example for ras.Randomizer")