test_that("sparse_auc", {
d_sparse <-
data.frame(
id = c(1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 4L, 5L, 6L, 4L, 5L, 6L, 7L, 8L, 9L, 7L, 8L, 9L),
conc = c(0, 0, 0, 1.75, 2.2, 1.58, 4.63, 2.99, 1.52, 3.03, 1.98, 2.22, 3.34, 1.3, 1.22, 3.54, 2.84, 2.55, 0.3, 0.0421, 0.231),
time = c(0, 0, 0, 1, 1, 1, 6, 6, 6, 2, 2, 2, 10, 10, 10, 4, 4, 4, 24, 24, 24),
dose = c(100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100)
)
# calculated using the PK library with
# v_batch <- PK::auc(data=d_sparse, method="t", design="batch")
# v_serial <- PK::auc(data=d_sparse, method="t", design="ssd")
auclast <- 39.4689 # using linear trapezoidal rule
auclast_se_batch <- 7.30997787038754 # for a batch design (with multiple measures from the same animal taken into account)
auclast_df_batch <- 2.74598236184576
auclast_se_serial <- 6.86584835083522 # for a serial design (with multiple measures from the same animal not taken into account)
auclast_df_serial <- 2.82631153092225
expect_warning(
sparse_batch <- pk.calc.sparse_auc(conc=d_sparse$conc, time=d_sparse$time, subject=d_sparse$id),
regexp="Cannot yet calculate sparse degrees of freedom for multiple samples per subject"
)
expect_equal(sparse_batch$sparse_auc, auclast)
expect_equal(sparse_batch$sparse_auc_se, auclast_se_batch)
expect_equal(sparse_batch$sparse_auc_df, NA_real_)
sparse_serial <- pk.calc.sparse_auc(conc=d_sparse$conc, time=d_sparse$time, subject=seq_len(nrow(d_sparse)))
expect_equal(sparse_serial$sparse_auc, auclast)
expect_equal(as.numeric(sparse_serial$sparse_auc_se), auclast_se_serial)
expect_equal(sparse_serial$sparse_auc_df, auclast_df_serial)
})
test_that("sparse_auclast expected errors", {
expect_error(
pk.calc.sparse_auclast(auc.type = "foo"),
class = "pknca_sparse_auclast_change_auclast"
)
})
test_that("sparse_auc_df and sparse_auc_se are in the parameter list (#292)", {
expect_true(
all(c("sparse_auc_df", "sparse_auc_se") %in% names(get.interval.cols()))
)
})
test_that("sparse_mean", {
d_sparse <-
data.frame(
id = c(1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 4L, 5L, 6L, 4L, 5L, 6L, 7L, 8L, 9L, 7L, 8L, 9L),
conc = c(0, 0, 0, 1.75, 2.2, 1.58, 4.63, 2.99, 1.52, 3.03, 1.98, 2.22, 3.34, 1.3, 1.22, 3.54, 2.84, 2.55, 0.3, 0.0421, 0.231),
time = c(0, 0, 0, 1, 1, 1, 6, 6, 6, 2, 2, 2, 10, 10, 10, 4, 4, 4, 24, 24, 24),
dose = c(100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100)
)
sparse_pk <- as_sparse_pk(d_sparse)
sparse_pk_wt <- sparse_auc_weight_linear(sparse_pk)
sparse_pk_mean <- sparse_mean(sparse_pk_wt, sparse_mean_method="arithmetic mean")
expect_equal(
sparse_pk_mean[[7]]$mean_method,
"arithmetic mean"
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.