Nothing
test_that("simulation works", {
spd <- design("Split-Plot Design | Split-Unit Design") %>%
set_units(mainplot = 30,
subplot = nested_in(mainplot, 4)) %>%
set_trts(trt1 = LETTERS[1:3],
trt2 = 4) %>%
allot_trts(trt1 ~ mainplot,
trt2 ~ subplot) %>%
assign_trts("random", seed = 719) %>%
serve_table() %>%
set_rcrds(mass = mainplot,
yield = subplot,
type = subplot) %>%
expect_rcrds(mass > 0,
yield > 0,
yield < 100,
factor(type, levels = c("a", "b", "c")))
spd2 <- spd %>%
simulate_process(mass = function(A = 3, B = -3, C = 0) {
effects <- c(A = A, B = B, C = C)
effects[trt1] + rnorm(n())
}, yield = function() runif(n(), 0, 200))
spdsim <- spd2 %>%
simulate_rcrds(mass = with_params(A = 2, B = 4, C = 80,
.aggregate = mean),
.seed = 1)
expect_warning(simulate_rcrds(spd2, mass = with_params(), mass = with_params()))
expect_equal(tapply(spdsim$mass, spdsim$trt1, function(x) mean(x, na.rm = TRUE)),
c(2, 4, 80), ignore_attr = TRUE, tolerance = 0.3)
spdsim <- spd2 %>%
simulate_rcrds(mass = with_params(A = 2, B = 4, C = 80,
.aggregate = mean),
yield = with_params(.censor = c(0, ~max(.x[.x < .upper]))),
.seed = 1)
#spd3 <- spd %>%
# simulate_process(
# .joint = function(C = matrix(c(1, -0.5, -0.5, 3), 2, 2)) {
# res <- mvtnorm::rmvnorm(n(), sigma = C)
# res <- as.data.frame(res)
# colnames(res) <- c("mass", "yield")
# res
# })
#expect_error(simulate_rcrds(spd3, nonexistant = with_params()))
skip("skip")
#
# spd3 %>%
# simulate_rcrds(.joint = with_params(.censor = list(mass = NA,
# yield = c(0, ~max(.x[.x < 3])))))
#
#
# spd3 %>%
# simulate_rcrds(.joint = with_params(.censor = list(.default = c(NA, 10),
# yield = c(0, ~max(.x[.x < 3])))))
#
# spd3 %>%
# simulate_rcrds(.joint = with_params(.censor = list(.default = c(NA, 10))))
#
#
# spd3 %>%
# simulate_rcrds(.joint = with_params(.censor = list(mass = c(NA, 10),
# yield = c(0, ~max(.x[.x < .upper])))))
# autofill all rspds
spd %>%
autofill_rcrds()
# select dependent factors
spd %>%
autofill_rcrds(mass = with_variables(mainplot, subplot, trt1))
# maybe not...
# spd %>%
# simulate_model(lm(mass ~ trt1),
# lmer(yield ~ trt2))
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.