test_that("test_consequences() works", {
# errors should be triggered
expect_error(
test_consequences(formula = cancer ~ cancerpredmarker, data = letters)
)
expect_error(
test_consequences(formula = cancer ~ cancerpredmarker, data = df_binary, label = letters)
)
expect_error(
test_consequences(formula = letters, data = mtcars)
)
expect_error(
df <- test_consequences(formula = cancer ~ cancerpredmarker + famhistory, data = df_binary,
thresholds = 0.5),
NA
)
tbl <- with(df_binary, table(famhistory, cancer))
a <- tbl[2, 2]; b <- tbl[2, 1]; c <- tbl[1, 2]; d <- tbl[1, 1]
expect_equal(
df %>%
dplyr::filter(variable == "famhistory") %>%
dplyr::select(-c(variable, label)) %>%
tidyr::pivot_longer(cols = dplyr::everything()) %>%
tibble::deframe() %>%
as.list(),
list(n = nrow(df_binary),
threshold = 0.5,
pos_rate = (a + c) / (a + b + c + d),
neg_rate = (b + d) / (a + b + c + d),
test_pos_rate = (a + b) / (a + b + c + d),
test_neg_rate = (c + d) / (a + b + c + d),
tp_rate = a / (a + b + c + d),
fp_rate = b / (a + b + c + d),
fn_rate = c / (a + b + c + d),
tn_rate = d / (a + b + c + d),
ppv = a / (a + b),
npv = d / (c + d),
sens = a / (a + c),
spec = d / (b + d),
lr_pos = (a / (a + c)) / (1 - (d / (b + d))),
lr_neg = (1 - (a / (a + c))) / (d / (b + d)))
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.