Nothing
skip_on_cran()
skip_if_not_installed("lixoftConnectors")
initRsSimulx()
test_that("treatment input of simulx", {
model <- inlineModel("
[LONGITUDINAL]
input = {V, k}
EQUATION:
C = pkmodel(V,k)
")
param <- c(V=10, k=0.2)
adm <- list(amount=10, time=seq(0,24 * 20, by=20))
out <- list(name='C', time=seq(0, 24 * 20, by=1))
res <- simulx(model=model,
parameter = param,
output = out,
treatment = adm)
expect_equal(res$param, param)
expect_equal(unique(res$treatment$amount), 10)
expect_equal(res$treatment$time, adm$time)
expect_equal(unique(res$treatment$admtype), 1)
expect_equal(unique(res$treatment$washout), 0)
expect_true(out$name %in% names(res))
expect_equal(res[[out$name]]$time, out$time)
treatment = list(list(amount=20, time=c(0, 7, 14), type=1))
res <- simulx(model=model,
parameter = param,
output = out,
treatment = treatment)
expect_equal(unique(res$treatment$amount), 20)
expect_equal(res$treatment$time, treatment[[1]]$time)
expect_equal(unique(res$treatment$admtype), 1)
treatment = list(list(amount=20, time=c(0, 7, 14), type=c(1, 1, 1)))
res <- simulx(model=model,
parameter = param,
output = out,
treatment = treatment)
expect_equal(unique(res$treatment$amount), 20)
expect_equal(res$treatment$time, treatment[[1]]$time)
expect_equal(res$treatment$admtype, treatment[[1]]$type)
# Expected error when wrong treatment list
treatment = list(list(amount=20, time=c(0, 7, 14), type=c(1, 1)))
expect_error(
simulx(model=model,
parameter = param,
output = out,
treatment = treatment),
"must have the same length.$"
)
treatment = list(list(amount=20, time=c(0, 7, 14), type=c(1, 2, 1)))
res <- simulx(model=model,
parameter = param,
output = out,
treatment = treatment)
expect_equal(unique(res$treatment$amount), 20)
expect_equal(res$treatment$time, treatment[[1]]$time)
expect_equal(res$treatment$admtype, treatment[[1]]$type)
treatment = list(list(amount=20, time=c(0, 7, 14), type=c(1, 2, 3)))
res <- simulx(model=model,
parameter = param,
output = out,
treatment = treatment)
expect_equal(unique(res$treatment$amount), 20)
expect_equal(res$treatment$time, treatment[[1]]$time)
expect_equal(res$treatment$admtype, treatment[[1]]$type)
treatment = list(list(amount=c(20, 50), time=c(0, 7, 14), type=1))
expect_error(
simulx(model=model,
parameter = param,
output = out,
treatment = treatment),
"must have the same length.$"
)
treatment = list(list(amount=c(20, 50, 100), time=c(0, 7, 14), type=1))
res <- simulx(model=model,
parameter = param,
output = out,
treatment = treatment)
expect_equal(res$treatment$amount, treatment[[1]]$amount)
expect_equal(res$treatment$time, treatment[[1]]$time)
expect_equal(unique(res$treatment$admtype), 1)
treatment = list(list(amount=c(20, 50, 100), time=c(0, 7, 14), type=c(1, 1, 1)))
res <- simulx(model=model,
parameter = param,
output = out,
treatment = treatment)
expect_equal(res$treatment$amount, treatment[[1]]$amount)
expect_equal(res$treatment$time, treatment[[1]]$time)
expect_equal(res$treatment$admtype, treatment[[1]]$type)
treatment = list(list(amount=c(20, 50, 100), time=c(0, 7, 14), type=c(1, 1)))
expect_error(
simulx(model=model,
parameter = param,
output = out,
treatment = treatment),
"must have the same length.$"
)
treatment = list(list(amount=c(20, 50, 100), time=c(0, 7, 14), type=c(1, 2, 1)))
res <- simulx(model=model,
parameter = param,
output = out,
treatment = treatment)
expect_equal(res$treatment$amount, treatment[[1]]$amount)
expect_equal(res$treatment$time, treatment[[1]]$time)
expect_equal(res$treatment$admtype, treatment[[1]]$type)
treatment = list(list(amount=c(20, 50, 100), time=c(0, 7, 14), type=c(1, 2, 3)))
res <- simulx(model=model,
parameter = param,
output = out,
treatment = treatment)
expect_equal(res$treatment$amount, treatment[[1]]$amount)
expect_equal(res$treatment$time, treatment[[1]]$time)
expect_equal(res$treatment$admtype, treatment[[1]]$type)
treatment = list(list(amount = 15, time = 12), list(amount=20, time=c(0, 7, 14), type=c(1, 2, 3)))
res <- simulx(model=model,
parameter = param,
output = out,
treatment = treatment)
expect_equal(res$treatment$amount, c(20, 20, 15, 20))
expect_equal(res$treatment$time, c(0, 7, 12, 14))
expect_equal(res$treatment$admtype, c(1, 2, 1, 3))
treatment = list(list(amount = 15, time = 12), as.data.frame(list(amount=c(20, 20, 20), time=c(0, 7, 14), type=c(1, 2, 3))))
res <- simulx(model=model,
parameter = param,
output = out,
treatment = treatment)
expect_equal(res$treatment$amount, c(20, 20, 15, 20))
expect_equal(res$treatment$time, c(0, 7, 12, 14))
expect_equal(res$treatment$admtype, c(1, 2, 1, 3))
treatment = list(list(amount = 15, time = 12), as.data.frame(list(amount=c(20, 20, 20), time=c(0, 7, 14), type=c(1, 1, 1))))
res <- simulx(model=model,
parameter = param,
output = out,
treatment = treatment)
expect_equal(res$treatment$amount, c(20, 20, 15, 20))
expect_equal(res$treatment$time, c(0, 7, 12, 14))
expect_equal(res$treatment$admtype, c(1, 1, 1, 1))
treatment = list(
list(amount = 15, time = 12),
data.frame(id = rep(1:3, each = 3), amount = rep(c(20, 50, 100), each = 3), time=rep(c(0, 7, 14), by = 3))
)
out_treatment <- data.frame(
id = rep(1:3, each = 4),
original_id = rep(1:3, each = 4),
time=rep(c(0, 7, 12, 14), by = 3),
amount = rep(c(20, 50, 100), each = 4),
admtype = 1,
washout = 0)
out_treatment$amount[seq(3, 12, 4)] <- 15
out_treatment$id <- factor(out_treatment$id)
res <- simulx(model=model,
parameter = param,
output = out,
treatment = treatment)
expect_equal(res$treatment, out_treatment)
treatment = list(
list(amount = 15, time = 12),
data.frame(amount = rep(c(20, 50, 100), each = 3), time=rep(c(0, 7, 14), by = 3), id = rep(1:3, each = 3))
)
expect_warning(res <- simulx(model=model,
parameter = param,
output = out,
treatment = treatment),
"^Some columns have been ignored in .* : 'id'\n$"
)
})
test_that("treatment input of simulx : administration type", {
model <- inlineModel("
[LONGITUDINAL]
input = {V, k}
EQUATION:
C = pkmodel(V,k)
")
param <- c(V=10, k=0.2)
out <- list(name='C', time=seq(0, 24 * 20, by=1))
trt <- data.frame(id=rep(1:3, each=2),
time=0,
amount=10,
type=rep(1:2, times=3))
out_treatment <- cbind(trt, washout = 0)
out_treatment$id <- factor(out_treatment$id)
names(out_treatment) <- c("id", "time", "amount", "admtype", "washout")
sim <- simulx(model = model,
parameter = param,
output = out,
treatment = trt)
sim$treatment$original_id <- NULL
expect_equal(sim$treatment, out_treatment)
trt <- data.frame(id=rep(1:3, each=2),
time=0,
amount=10)
sim <- simulx(model = model,
parameter = param,
output = out,
treatment = trt)
out_treatment <- cbind(trt, admtype = 1, washout = 0)
out_treatment$id <- factor(out_treatment$id)
sim <- simulx(model = model,
parameter = param,
output = out,
treatment = trt)
sim$treatment$original_id <- NULL
expect_equal(sim$treatment, out_treatment)
sim <- simulx(model = model,
parameter = param,
output = out,
treatment = list(time=0, type=2, amount=10))
expect_equal(unique(sim$treatment$amount), 10)
expect_equal(unique(sim$treatment$time), 0)
expect_equal(unique(sim$treatment$admtype), 2)
sim <- simulx(model = model,
parameter = param,
output = out,
treatment = list(time=0, amount=10))
expect_equal(unique(sim$treatment$amount), 10)
expect_equal(unique(sim$treatment$time), 0)
expect_equal(unique(sim$treatment$admtype), 1)
})
test_that("treatment input of simulx : proba miss dose", {
model <- inlineModel("
[LONGITUDINAL]
input = {V, k}
EQUATION:
C = pkmodel(V,k)
")
param <- c(V=10, k=0.2)
out <- list(name='C', time=seq(0, 24 * 20, by=1))
trt <- data.frame(id=rep(1:3, each=2),
time=0,
amount=10,
type=rep(1:2, times=3),
probaMissDose=rep(0:1, times=3))
out_treatment <- cbind(trt, washout = 0)
out_treatment <- out_treatment[out_treatment$probaMissDose != 1,]
out_treatment$id <- factor(out_treatment$id)
out_treatment <- out_treatment[names(out_treatment) != "probaMissDose"]
row.names(out_treatment) <- NULL
names(out_treatment) <- c("id", "time", "amount", "admtype", "washout")
sim <- simulx(model = model,
parameter = param,
output = out,
treatment = trt)
sim$treatment$original_id <- NULL
expect_equal(sim$treatment, out_treatment)
sim <- simulx(model = model,
parameter = param,
output = out,
group = list(size=100),
treatment = list(time=0, type=2, amount=10, probaMissDose=0.5))
expect_equal(unique(sim$treatment$amount), 10)
expect_equal(unique(sim$treatment$time), 0)
expect_equal(unique(sim$treatment$admtype), 2)
expect_true(nrow(sim$treatment) < 100)
sim <- simulx(model = model,
parameter = param,
output = out,
group = list(size=100),
treatment = list(time=c(0, 24), type=2, amount=10, probaMissDose=c(0, 0.5)))
expect_equal(unique(sim$treatment$amount), 10)
expect_equal(unique(sim$treatment$time), c(0, 24))
expect_equal(unique(sim$treatment$admtype), 2)
expect_true(nrow(sim$treatment[sim$treatment$time == 0,]) == 100)
expect_true(nrow(sim$treatment[sim$treatment$time == 24,]) < 100)
})
test_that("treatment input of simulx : repeat", {
model <- inlineModel("
[LONGITUDINAL]
input = {V, k}
EQUATION:
C = pkmodel(V,k)
")
param <- c(V=10, k=0.2)
out <- list(name='C', time=seq(0, 24 * 20, by=1))
trt <- data.frame(id=rep(1:3, each=2),
time=0,
amount=10,
type=rep(1:2, times=3),
probaMissDose=rep(0:1, times=3),
repeats=4)
# warning appears twice
warn_txt = "^Some columns have been ignored in .* : 'repeats'\n$"
expect_warning( expect_warning(
res <- simulx(model = model,
parameter = param,
output = out,
treatment = trt),
warn_txt), warn_txt
)
expect_error(
simulx(model = model,
parameter = param,
output = out,
group = list(size=100),
treatment = list(time=0, amount=10, repeats=0.5)),
"^Invalid treatment repeats."
)
expect_error(
simulx(model = model,
parameter = param,
output = out,
group = list(size=100),
treatment = list(time=0, amount=10, repeats=c(cycleDuration=24))),
"^Invalid treatment repeats."
)
sim <- simulx(model = model,
parameter = param,
output = out,
group = list(size=100),
treatment = list(time=0, amount=10, repeats=c(cycleDuration=24, NumberOfRepetitions=3)))
expect_equal(unique(sim$treatment$amount), 10)
expect_equal(unique(sim$treatment$time), seq(0, 24 * 3, 24))
sim <- simulx(model = model,
parameter = param,
output = out,
group = list(size=100),
treatment = list(time=c(0, 24), amount=10, type = c(1, 2), repeats=c(cycleDuration=48, NumberOfRepetitions=3)))
expect_equal(unique(sim$treatment$amount), 10)
expect_equal(unique(sim$treatment$admtype), c(1, 2))
expect_equal(unique(sim$treatment$time), seq(0, 24 * 7, 24))
})
test_that("parameter input of simulx: covariate in parameters", {
model <- inlineModel("
[COVARIATE]
input = {C1, C2}
[INDIVIDUAL]
input = {Cl_pop, omega_Cl, Q_pop, omega_Q, V1_pop, omega_V1, V2_pop, omega_V2,
C1, C2, beta_Cl_C1, beta_Cl_C2, beta_V1_C1, corr_V1_Cl}
DEFINITION:
Cl = {distribution=logNormal, typical=Cl_pop, covariate={C1, C2}, coefficient={beta_Cl_C1, beta_Cl_C2}, sd=omega_Cl}
Q = {distribution=logNormal, typical=Q_pop, sd=omega_Q}
V1 = {distribution=logNormal, typical=V1_pop, covariate=C1, coefficient=beta_V1_C1, sd=omega_V1}
V2 = {distribution=logNormal, typical=V2_pop, sd=omega_V2}
correlation = {level=id, r(V1, Cl)=corr_V1_Cl}
[LONGITUDINAL]
input = {Cl, Q, V1, V2, a, b}
EQUATION:
Cc = pkmodel(k=Cl/V1, V=V1, k12=Q/V1, k21=Q/V2)
g = sqrt(a^2 + (b*Cc)^2)
DEFINITION:
y = {distribution=normal, prediction=Cc, sd=g}
")
N <- 50
t.y <- c(0.5, 2, 5, 8, 12, 16, 21)
t.Cc <- seq(0, 24, by=0.2)
D <- 1000
p.pop <- c(Cl_pop=1, Q_pop=4, V1_pop=10, V2_pop=20)
p.omega <- c(omega_Cl=0.3, omega_Q=0.2, omega_V1=0.3, omega_V2=0.2, corr_V1_Cl=0.5)
p.beta <- c(beta_Cl_C1=0.7, beta_Cl_C2=1, beta_V1_C1=0.8)
p.res <- c(a=2, b=0.15)
popparam <- c(p.pop, p.omega, p.beta, p.res)
ncov <- 2
covariate <- data.frame(id=factor(1:N), matrix(rnorm(N*ncov)*0.2, ncol=ncov))
names(covariate)[-1] <- paste0("C",1:ncov)
expect_message(
sim1 <- simulx(model=model,
parameter=list(popparam, covariate),
treatment=list(time=0, amount=D),
output=list(list(name="Cc", time=t.Cc), list(name="y", time=t.y))),
"Using 'parameter' argument to define covariates is deprecated."
)
expect_equal(sim1$parameter[c("id", "C1", "C2")], covariate, tolerance=1e-4)
expect_true(all(names(sim1$population) %in% names(popparam)))
expect_equal(sim1$population[names(popparam)], popparam)
sim2 <- simulx(model=model,
parameter=popparam,
covariate=covariate,
treatment=list(time=0, amount=D),
output=list(list(name="Cc", time=t.Cc), list(name="y", time=t.y)))
expect_equal(sim2$parameter[c("id", "C1", "C2")], covariate, tolerance=1e-4)
expect_true(all(names(sim2$population) %in% names(popparam)))
expect_equal(sim2$population[names(popparam)], popparam)
expect_warning(expect_message(
sim1 <- simulx(model=model,
parameter=list(popparam, c(C1 = 2)),
treatment=list(time=0, amount=D),
output=list(list(name="Cc", time=t.Cc), list(name="y", time=t.y))),
"Using 'parameter' argument to define covariates is deprecated."),
"'C2' has not been specified. It will be set to 1."
)
expect_equal(sim1$parameter[c("C1", "C2")], c(C1 = 2, C2 = 1))
expect_warning(
sim2 <- simulx(model=model,
parameter=popparam,
covariate=c(C1 = 2),
treatment=list(time=0, amount=D),
output=list(list(name="Cc", time=t.Cc), list(name="y", time=t.y))),
"'C2' has not been specified. It will be set to 1."
)
expect_equal(sim2$parameter[c("C1", "C2")], c(C1 = 2, C2 = 1))
expect_message(
sim1 <- simulx(model=model,
parameter=list(popparam, c(C1 = 2, C2 = 3)),
treatment=list(time=0, amount=D),
output=list(list(name="Cc", time=t.Cc), list(name="y", time=t.y))),
"Using 'parameter' argument to define covariates is deprecated."
)
expect_equal(sim1$parameter[c("C1", "C2")], c(C1 = 2, C2 = 3))
sim2 <- simulx(model=model,
parameter=popparam,
covariate=c(C1 = 2, C2 = 3),
treatment=list(time=0, amount=D),
output=list(list(name="Cc", time=t.Cc), list(name="y", time=t.y)))
expect_equal(sim2$parameter[c("C1", "C2")], c(C1 = 2, C2 = 3))
expect_message(
sim3 <- simulx(model=model,
parameter=list(popparam, c(C1 = 2)),
covariate=c(C2 = 3),
treatment=list(time=0, amount=D),
output=list(list(name="Cc", time=t.Cc), list(name="y", time=t.y))),
"Using 'parameter' argument to define covariates is deprecated."
)
expect_equal(sim1$parameter[c("C1", "C2")], c(C1 = 2, C2 = 3))
expect_warning(
expect_message(
sim1 <- simulx(model=model,
parameter=covariate,
treatment=list(time=0, amount=D),
output=list(list(name="Cc", time=t.Cc), list(name="y", time=t.y))),
"Using 'parameter' argument to define covariates is deprecated."),
"^Parameter has not been defined."
)
expect_equal(sim1$parameter[c("id", "C1", "C2")], covariate, tolerance=1e-4)
expect_true(all(sim1$population == 1))
model <- inlineModel("
[COVARIATE]
input = {WT}
[INDIVIDUAL]
input = {WT, ka_pop, omega_ka, Cl_pop, omega_Cl, beta_WT_Cl, V1_pop, omega_V1, Q_pop, omega_Q, V2_pop, omega_V2, BL_pop, omega_BL, IC50_pop, omega_IC50}
EQUATION:
Cl_pred = Cl_pop *(WT/70)^beta_WT_Cl
DEFINITION:
ka = {distribution=lognormal, typical=ka_pop, sd=omega_ka}
Cl = {distribution=lognormal, typical=Cl_pred,sd=omega_Cl}
V1 = {distribution=lognormal, typical=V1_pop, sd=omega_V1}
Q = {distribution=lognormal, typical= Q_pop, sd=omega_Q}
V2 = {distribution=lognormal, typical=V2_pop, sd=omega_V2}
BL = {distribution=lognormal, typical=BL_pop, sd=omega_BL}
IC50 = {distribution=lognormal, typical=IC50_pop, sd=omega_IC50}
[LONGITUDINAL]
input = {ka, Cl, V1, Q, V2, BL, IC50, b1, b2}
EQUATION:
V = V1
k = Cl/V1
k12 = Q/V1
k21 = Q/V2
Cc = pkmodel(ka,V, k, k12, k21)
PD = (1 - Cc/(Cc+IC50))* BL
DEFINITION:
y1 = {distribution=normal, prediction=Cc, errorModel=proportional(b1)}
y2 = {distribution=normal, prediction=PD, errorModel=proportional(b2)}")
# define the parameter values
param <- c(ka_pop=0.398, omega_ka=0.15, Cl_pop=10.8, omega_Cl=0.389,
beta_WT_Cl=1.1, V1_pop=18.5, omega_V1=0.448, Q_pop=6.7, omega_Q=0.288,
V2_pop=64.4, omega_V2=0.333, BL_pop=98, omega_BL=0.0893,
IC50_pop=81.4, omega_IC50=0.278, b1=0.443, b2=0.19)
# number of individuals to simulate
N <- 30
# generating the covariates as data frame with column id and one column per covariate
cov <- data.frame(id=1:N,
WT=sample(x=c(60,70,45,82), size=N, replace=T))
# define treatmet 100 mg QD
trt <- list(amount=100000, time=seq(0,96,by=24))
# define what to output
outCc <- list(name='Cc', time=seq(0,96,by=0.5))
outPD <- list(name='PD', time=seq(0,96,by=0.5))
# simulate
expect_message(
res1 <- simulx(model = model,
parameter = list(param, cov),
group = list(size=N),
output = list(outCc, outPD),
treatment = trt),
"Using 'parameter' argument to define covariates is deprecated."
)
res2 <- simulx(model = model,
parameter = param,
covariate = cov,
group = list(size=N),
output = list(outCc, outPD),
treatment = trt)
out_cov <- cov
out_cov$id <- factor(out_cov$id)
out_trt <- data.frame(id = factor(rep(1:N, each = length(trt$time))),
time = rep(trt$time, by = N),
amount = trt$amount,
admtype = 1, washout = 0)
expect_equal(res1$population, param)
expect_equal(res1$parameter[c("id", "WT")], out_cov)
expect_length(unique(res1$Cc$id), N)
res1$treatment$original_id <- NULL
expect_equal(res1$treatment, out_trt)
expect_equal(res2$population, param)
expect_equal(res2$parameter[c("id", "WT")], out_cov)
expect_length(unique(res2$Cc$id), N)
res2$treatment$original_id <- NULL
expect_equal(res2$treatment, out_trt)
})
test_that("groups with covariates", {
model <- inlineModel("
[COVARIATE]
input = {C1, C2}
[INDIVIDUAL]
input = {Cl_pop, omega_Cl, Q_pop, omega_Q, V1_pop, omega_V1, V2_pop, omega_V2,
C1, C2, beta_Cl_C1, beta_Cl_C2, beta_V1_C1, corr_V1_Cl}
DEFINITION:
Cl = {distribution=logNormal, typical=Cl_pop, covariate={C1, C2}, coefficient={beta_Cl_C1, beta_Cl_C2}, sd=omega_Cl}
Q = {distribution=logNormal, typical=Q_pop, sd=omega_Q}
V1 = {distribution=logNormal, typical=V1_pop, covariate=C1, coefficient=beta_V1_C1, sd=omega_V1}
V2 = {distribution=logNormal, typical=V2_pop, sd=omega_V2}
correlation = {level=id, r(V1, Cl)=corr_V1_Cl}
[LONGITUDINAL]
input = {Cl, Q, V1, V2, a, b}
EQUATION:
Cc = pkmodel(k=Cl/V1, V=V1, k12=Q/V1, k21=Q/V2)
g = sqrt(a^2 + (b*Cc)^2)
DEFINITION:
y = {distribution=normal, prediction=Cc, sd=g}
")
t.y <- c(0.5, 2, 5, 8, 12, 16, 21)
t.Cc <- seq(0, 24, by=0.2)
D <- 1000
pop_g1 <- c(Cl_pop=1, Q_pop=4, V1_pop=10, V2_pop=20)
pop_g2 <- c(Cl_pop=1, Q_pop=6, V1_pop=10, V2_pop=20)
omega <- c(omega_Cl=0.3, omega_Q=0.2, omega_V1=0.3, omega_V2=0.2, corr_V1_Cl=0.5)
beta <- c(beta_Cl_C1=0.7, beta_Cl_C2=1, beta_V1_C1=0.8)
res <- c(a=2, b=0.15)
popparam_g1 <- c(pop_g1, omega, beta, res)
popparam_g2 <- c(pop_g2, omega, beta, res)
ncov <- 2
ng1 <- 50
ng2 <- 100
covariate_g1 <- data.frame(id=factor(1:ng1), matrix(rnorm(ncov*ncov)*0.2, ncol=ncov))
names(covariate_g1)[-1] <- paste0("C",1:ncov)
covariate_g2 <- data.frame(id=factor(1:ng2), matrix(rnorm(ncov*ncov)*0.2, ncol=ncov))
names(covariate_g2)[-1] <- paste0("C",1:ncov)
expect_warning(
expect_message(
sim <- simulx(model=model,
parameter=list(popparam_g1),
group=list(list(parameter=covariate_g1), list(parameter=covariate_g2)),
treatment=list(time=0, amount=D),
output=list(list(name="Cc", time=t.Cc), list(name="y", time=t.y))),
"Using 'parameter' argument to define covariates is deprecated."
),
"parameter has been defined in both shared group and groups. parameter defined in shared group will be erased."
)
expect_equal(sim$population, popparam_g1[names(sim$population)])
out_param_g1 <- sim$parameter[sim$parameter$group == 1,]
out_param_g2 <- sim$parameter[sim$parameter$group == 2,]
row.names(out_param_g1) <- NULL
row.names(out_param_g2) <- NULL
expect_equal(out_param_g1[c("C1", "C2")], covariate_g1[c("C1", "C2")], tolerance = 1e-4)
expect_equal(out_param_g2[c("C1", "C2")], covariate_g2[c("C1", "C2")], tolerance = 1e-4)
expect_message(
sim <- simulx(model=model,
group=list(list(parameter=list(popparam_g1, covariate_g1)), list(parameter=list(popparam_g2, covariate_g2))),
treatment=list(time=0, amount=D),
output=list(list(name="Cc", time=t.Cc), list(name="y", time=t.y))),
"Using 'parameter' argument to define covariates is deprecated."
)
out_param_g1 <- sim$parameter[sim$parameter$group == 1,]
out_param_g2 <- sim$parameter[sim$parameter$group == 2,]
row.names(out_param_g1) <- NULL
row.names(out_param_g2) <- NULL
expect_equal(unlist(sim$population[sim$population$group == 1, names(popparam_g1)]), popparam_g1)
expect_equal(unlist(sim$population[sim$population$group == 2, names(popparam_g2)]), popparam_g2)
expect_equal(out_param_g1[c("C1", "C2")], covariate_g1[c("C1", "C2")], tolerance = 1e-4)
expect_equal(out_param_g2[c("C1", "C2")], covariate_g2[c("C1", "C2")], tolerance = 1e-4)
sim <- simulx(model=model,
parameter=list(popparam_g1),
group=list(list(covariate=covariate_g1), list(covariate=covariate_g2)),
treatment=list(time=0, amount=D),
output=list(list(name="Cc", time=t.Cc), list(name="y", time=t.y)))
expect_equal(sim$population, popparam_g1[names(sim$population)])
out_param_g1 <- sim$parameter[sim$parameter$group == 1,]
out_param_g2 <- sim$parameter[sim$parameter$group == 2,]
row.names(out_param_g1) <- NULL
row.names(out_param_g2) <- NULL
expect_equal(out_param_g1[c("C1", "C2")], covariate_g1[c("C1", "C2")], tolerance = 1e-4)
expect_equal(out_param_g2[c("C1", "C2")], covariate_g2[c("C1", "C2")], tolerance = 1e-4)
})
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.