emitanaka / edibble

An R-package that encapsulate elements of experimental design for better planning, management, and workflow
https://edibble.emitanaka.org
Other
215 stars 14 forks source link

specify replicates and other attributes for each treatment #32

Closed emitanaka closed 2 years ago

emitanaka commented 3 years ago
start_design() %>% 
  set_trts(treat = c("A" = 4, "B" = 3, "C" = Inf)) %>% 
  set_units(unit = 12) %>% 
 allocate_trts(treat ~ unit) %>% 
 randomise_trts()
start_design() %>% 
  set_trts(treat = traits("A" = ed_attr(rep = 4, desc = "brand A"),
                          "B" = ed_attr(rep = 3, desc = "brand B"), 
                          "C" = ed_attr(rep = Inf, desc = "do nothing")) %>% 
  set_units(unit = 12) %>% 
 allocate_trts(treat ~ unit) %>% 
 randomise_trts()
emitanaka commented 3 years ago

Alternative to latter:

start_design() %>% 
  set_trts(treat = c(level(label = "A", rep = 4, desc = "brand A"),
                                level(label = "B", rep = 3, desc = "brand B"), 
                                level(label = "C", rep = Inf, desc = "do nothing"))
emitanaka commented 2 years ago
start_design() %>% 
  set_units(flour = traits(n = 10, desc = "buck wheat", unit = "1 bag"),
            sample = nested_in(flour, 3))
emitanaka commented 2 years ago

This is now possible via combination of lvl_attrs and fct_attrs.

library(edibble)
des <- start_design() %>% 
  set_trts(treat = fct_attrs(levels = lvl_attrs(levels = c("A", "B", "C"),
                                                rep  = c(4, 3, Inf),
                                                desc = c("brand A", "brand B", "do nothing"))
                             ))

lvl_nodes(des)
#>   idvar id name   var label rep       desc
#> 1     1  1    A treat     A   4    brand A
#> 2     1  2    B treat     B   3    brand B
#> 3     1  3    C treat     C Inf do nothing

Created on 2022-02-03 by the reprex package (v2.0.1)