Hello,
We are preparing a large, real-world investigation that will use targeted learning methods to quantify average treatment effects and to derive optimal personalized treatment rules across four internet-delivered cognitive behavioral therapy programs for prevalent emotional disorders. Our statistical implementation relies on the tlverse infrastructure, in particular tmle3, sl3, and tmle3mopttx. The tlverse handbook has played a key role in guiding our conceptual understanding and analytic pipeline. We greatly appreciate the substantial effort invested in building and sustaining these advanced methodological tools, which have made rigorous targeted learning procedures feasible for applied researchers.
Addressing missing data in a continuous outcome is critical for our planned analyses. When extending the washb example from the tlverse handbook (https://tlverse.org/tlverse-handbook/tmle3.html
) to incorporate missingness in the outcome variable, we encountered following errors in both the ATE estimation via tmle3 and the optimal dynamic treatment rule estimation via tmle3mopttx (shortened with “…”):
“Error in (function (params = list(), data, nrounds, watchlist = list(), ...) :
second argument dtrain must be xgb.DMatrix
…
Failed on Lrnr_nnls_TRUE
Error in self$compute_step() :
Error in nnls::nnls(as.matrix(x), y) : NA in input.”
It is notable that the same models ran successfully under a complete-case specification without outcome missingness; the errors emerged only after introducing missingness in Y.
Whole code and errors and sessioninfo:
R version 4.5.2 (2025-10-31 ucrt) -- "[Not] Part in a Rumble"
Copyright (C) 2025 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
library(sl3)
sl3 1.4.5
Please note the package is under active development.
Check often for updates and report bugs at https://github.com/tlverse/sl3. > library(tmle3)
tmle3 0.2.0
Please note the package is in early stages of development.
Check often for updates and reportbugs at http://github.com/tlverse/tmle3.> library(tmle3mopttx)
library(data.table)
data.table 1.18.2.1 using 4 threads (see ?getDTthreads). Latest news: r-datatable.com>
washb_data <- fread(
paste0(
"https://raw.githubusercontent.com/tlverse/tlverse-data/master/",
"wash-benefits/washb_data.csv"
),
stringsAsFactors = TRUE
)
trying URL 'https://raw.githubusercontent.com/tlverse/tlverse-data/master/wash-benefits/washb_data.csv'
Content type 'text/plain; charset=utf-8' length 576632 bytes (563 KB)
downloaded 563 KB
washb_data$complete<-complete.cases(washb_data)
table(washb_data$complete)
FALSE TRUE
49 4646
data<-subset(washb_data, complete==TRUE)
data$complete<-NULL
table(data$tr)
Control Handwashing Nutrition Nutrition + WSH Sanitation WSH Water
1165 585 563 591 585 583 574
node_list <- list(
W = c(
"month", "aged", "sex", "momage", "momedu",
"momheight", "hfiacat", "Nlt18", "Ncomp", "watmin",
"elec", "floor", "walls", "roof", "asset_wardrobe",
"asset_table", "asset_chair", "asset_khat",
"asset_chouki", "asset_tv", "asset_refrig",
"asset_bike", "asset_moto", "asset_sewmach",
"asset_mobile"
),
A = "tr",
Y = "whz"
)
recode treatment to numeric-coded factor 1..7
data$tr_num <- factor(as.integer(data$tr), levels = 1:7)
str(data$tr)
Factor w/ 7 levels "Control","Handwashing",..: 1 1 1 1 1 1 1 1 1 1 ...
str(data$tr_num)
Factor w/ 7 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 1 1 ...
update node_list
node_list2 <- node_list
node_list2$A <- "tr_num"
table(data$tr_num, useNA = "ifany")
1 2 3 4 5 6 7
1165 585 563 591 585 583 574
anyNA(data$tr_num)
[1] FALSE
#add missingness
data1<-data
n <- nrow(data1)
idx_miss <- sample(seq_len(n), size = floor(0.20 * n))
data1$whz[idx_miss] <- NA
psych::describe(data1)
vars n mean sd median trimmed mad min max range skew kurtosis se
whz 1 3717 -0.60 1.03 -0.61 -0.61 1.01 -4.67 4.97 9.64 0.17 0.55 0.02
tr* 2 4646 3.62 2.12 4.00 3.53 2.97 1.00 7.00 6.00 0.18 -1.34 0.03
fracode* 3 4646 10.48 5.80 10.00 10.40 7.41 1.00 20.00 19.00 0.12 -1.22 0.09
month 4 4646 6.44 3.33 6.00 6.46 4.45 1.00 12.00 11.00 -0.05 -1.15 0.05
aged 5 4646 266.03 52.17 266.00 265.92 54.86 42.00 460.00 418.00 0.02 -0.19 0.77
sex* 6 4646 1.50 0.50 1.00 1.50 0.00 1.00 2.00 1.00 0.01 -2.00 0.01
momage 7 4646 23.91 5.24 23.00 23.45 5.93 14.00 60.00 46.00 0.81 0.77 0.08
momedu* 8 4646 2.38 0.74 3.00 2.47 0.00 1.00 3.00 2.00 -0.73 -0.84 0.01
momheight 9 4646 150.50 5.23 150.60 150.53 5.19 120.65 168.00 47.35 -0.11 0.36 0.08
hfiacat* 10 4646 1.56 0.91 1.00 1.41 0.00 1.00 4.00 3.00 1.24 0.04 0.01
Nlt18 11 4646 1.61 1.25 1.00 1.50 1.48 0.00 10.00 10.00 1.02 1.90 0.02
Ncomp 12 4646 11.05 6.36 10.00 10.28 5.93 2.00 52.00 50.00 1.33 2.55 0.09
watmin 13 4646 0.95 9.53 0.00 0.39 0.00 0.00 600.00 600.00 54.87 3373.82 0.14
elec 14 4646 0.59 0.49 1.00 0.62 0.00 0.00 1.00 1.00 -0.38 -1.86 0.01
floor 15 4646 0.11 0.31 0.00 0.01 0.00 0.00 1.00 1.00 2.56 4.58 0.00
walls 16 4646 0.72 0.45 1.00 0.77 0.00 0.00 1.00 1.00 -0.97 -1.06 0.01
roof 17 4646 0.99 0.12 1.00 1.00 0.00 0.00 1.00 1.00 -8.02 62.32 0.00
asset_wardrobe 18 4646 0.16 0.37 0.00 0.08 0.00 0.00 1.00 1.00 1.81 1.27 0.01
asset_table 19 4646 0.73 0.44 1.00 0.79 0.00 0.00 1.00 1.00 -1.06 -0.87 0.01
asset_chair 20 4646 0.73 0.44 1.00 0.79 0.00 0.00 1.00 1.00 -1.06 -0.87 0.01
asset_khat 21 4646 0.61 0.49 1.00 0.64 0.00 0.00 1.00 1.00 -0.46 -1.79 0.01
asset_chouki 22 4646 0.78 0.41 1.00 0.85 0.00 0.00 1.00 1.00 -1.36 -0.15 0.01
asset_tv 23 4646 0.30 0.46 0.00 0.25 0.00 0.00 1.00 1.00 0.86 -1.26 0.01
asset_refrig 24 4646 0.08 0.27 0.00 0.00 0.00 0.00 1.00 1.00 3.13 7.81 0.00
asset_bike 25 4646 0.32 0.47 0.00 0.27 0.00 0.00 1.00 1.00 0.78 -1.40 0.01
asset_moto 26 4646 0.07 0.25 0.00 0.00 0.00 0.00 1.00 1.00 3.49 10.20 0.00
asset_sewmach 27 4646 0.06 0.25 0.00 0.00 0.00 0.00 1.00 1.00 3.55 10.60 0.00
asset_mobile 28 4646 0.86 0.35 1.00 0.95 0.00 0.00 1.00 1.00 -2.06 2.22 0.01
tr_num* 29 4646 3.62 2.12 4.00 3.53 2.97 1.00 7.00 6.00 0.18 -1.34 0.03
Initialize few of the learners:
lrn_xgboost_50 <- Lrnr_xgboost$new(nrounds = 50)
lrn_xgboost_100 <- Lrnr_xgboost$new(nrounds = 100)
lrn_xgboost_500 <- Lrnr_xgboost$new(nrounds = 500)
lrn_mean <- Lrnr_mean$new()
lrn_glm <- Lrnr_glm_fast$new()
Define the Q learner, which is just a regular learner:
Q_learner <- Lrnr_sl$new(
learners = list(lrn_xgboost_100, lrn_mean, lrn_glm),
metalearner = Lrnr_nnls$new()
)
Define the g learner, which is a multinomial learner:
specify the appropriate loss of the multinomial learner:
mn_metalearner <- make_learner(Lrnr_solnp,
eval_function = loss_loglik_multinomial,
learner_function = metalearner_linear_multinomial
)
g_learner <- make_learner(Lrnr_sl, list(lrn_xgboost_100, lrn_xgboost_500, lrn_mean), mn_metalearner)
Define the Blip learner, which is a multivariate learner:
learners <- list(lrn_xgboost_50, lrn_xgboost_100, lrn_xgboost_500, lrn_mean, lrn_glm)
b_learner <- create_mv_learners(learners = learners)
#define delta learner
delta_learner <- Lrnr_sl$new(
learners = list(lrn_mean, lrn_glm),
metalearner = Lrnr_nnls$new()
)
tsm_spec_1 <- tmle_TSM_all()
#Without missigness using complete case data
specify outcome and treatment regressions and create learner list for ATE estimation
learner_list1_without_missing <- list(Y = Q_learner, A = g_learner)
learner_list2_without_missing <- list(Y = Q_learner, A = g_learner, B = b_learner)
t0 <- proc.time()
set.seed(54197)
tmle_fit_without_missing <- tmle3(tsm_spec_1, data, node_list2, learner_list1_without_missing)
proc.time()-t0
user system elapsed
381.83 7.81 700.94
tmle_fit_without_missing
A tmle3_Fit that took 1 step(s)
type param init_est tmle_est se lower upper psi_transformed lower_transformed upper_transformed
1: TSM E[Y_{A=1}] -0.6138440 -0.6155602 0.02969725 -0.6737657 -0.5573547 -0.6155602 -0.6737657 -0.5573547
2: TSM E[Y_{A=2}] -0.6376914 -0.6519943 0.04154943 -0.7334296 -0.5705589 -0.6519943 -0.7334296 -0.5705589
3: TSM E[Y_{A=3}] -0.6195744 -0.6147802 0.04247113 -0.6980221 -0.5315384 -0.6147802 -0.6980221 -0.5315384
4: TSM E[Y_{A=4}] -0.6201356 -0.6244124 0.04155929 -0.7058671 -0.5429577 -0.6244124 -0.7058671 -0.5429577
5: TSM E[Y_{A=5}] -0.5796145 -0.5880731 0.04202316 -0.6704369 -0.5057092 -0.5880731 -0.6704369 -0.5057092
6: TSM E[Y_{A=6}] -0.4771063 -0.4534784 0.04482058 -0.5413251 -0.3656317 -0.4534784 -0.5413251 -0.3656317
7: TSM E[Y_{A=7}] -0.5401646 -0.5322820 0.03936715 -0.6094402 -0.4551238 -0.5322820 -0.6094402 -0.4551238
tmle_spec_dynamic_no_missing <- tmle3_mopttx_blip_revere(
V = c("month", "aged", "sex", "momage", "momedu",
"momheight", "hfiacat", "Nlt18", "Ncomp", "watmin",
"elec", "floor", "walls", "roof", "asset_wardrobe",
"asset_table", "asset_chair", "asset_khat",
"asset_chouki", "asset_tv", "asset_refrig",
"asset_bike", "asset_moto", "asset_sewmach",
"asset_mobile"), type = "blip2",
learners = learner_list2_without_missing, maximize = TRUE, complex = TRUE,
realistic = FALSE
)
t0 <- proc.time()
set.seed(54197)
tmle_fit_without_missing_dynamic <- tmle3(tmle_spec_dynamic_no_missing, data, node_list2, learner_list2_without_missing)
proc.time()-t0
user system elapsed
426.65 8.44 861.03
tmle_fit_without_missing_dynamic
A tmle3_Fit that took 1 step(s)
type param init_est tmle_est se lower upper psi_transformed lower_transformed upper_transformed
1: TSM E[Y_{A=NULL}] -0.4792526 -0.4682867 0.04428533 -0.5550844 -0.3814891 -0.4682867 -0.5550844 -0.3814891
#WITH MISSING DATA THE SAME CODE DOES NOT WORK
table(is.na(data1$whz))
FALSE TRUE
3717 929
specify outcome and treatment regressions and create learner list for ATE estimation
learner_list1 <- list(Y = Q_learner, A = g_learner, delta_Y=delta_learner)
learner_list2 <- list(Y = Q_learner, A = g_learner, B = b_learner, delta_Y=delta_learner)
t0 <- proc.time()
set.seed(54197)
tmle_fit_with_missing <- tmle3(tsm_spec_1, data1, node_list2, learner_list1)
Error in (function (params = list(), data, nrounds, watchlist = list(), :
second argument dtrain must be xgb.DMatrix
Error in (function (params = list(), data, nrounds, watchlist = list(), :
second argument dtrain must be xgb.DMatrix
In addition: Warning message:
In private$.train(processed_task, trained_sublearners) :
Lrnr_xgboost_100_1 failed with message: Error in (function (params = list(), data, nrounds, watchlist = list(), :
second argument dtrain must be xgb.DMatrix
. It will be removed from the stack
Error in (function (params = list(), data, nrounds, watchlist = list(), :
second argument dtrain must be xgb.DMatrix
Error in (function (params = list(), data, nrounds, watchlist = list(), :
second argument dtrain must be xgb.DMatrix
Error in (function (params = list(), data, nrounds, watchlist = list(), :
second argument dtrain must be xgb.DMatrix
Error in (function (params = list(), data, nrounds, watchlist = list(), :
second argument dtrain must be xgb.DMatrix
Error in (function (params = list(), data, nrounds, watchlist = list(), :
second argument dtrain must be xgb.DMatrix
Error in (function (params = list(), data, nrounds, watchlist = list(), :
second argument dtrain must be xgb.DMatrix
Error in (function (params = list(), data, nrounds, watchlist = list(), :
second argument dtrain must be xgb.DMatrix
Error in (function (params = list(), data, nrounds, watchlist = list(), :
second argument dtrain must be xgb.DMatrix
Error in (function (params = list(), data, nrounds, watchlist = list(), :
second argument dtrain must be xgb.DMatrix
Error in nnls::nnls(as.matrix(x), y) : NA in input.
In addition: There were 11 warnings (use warnings() to see them)
Failed on Lrnr_nnls_TRUE
Error in self$compute_step() :
Error in nnls::nnls(as.matrix(x), y) : NA in input.
tmle_spec_dynamic_missing <- tmle3_mopttx_blip_revere(
V = c("month", "aged", "sex", "momage", "momedu",
"momheight", "hfiacat", "Nlt18", "Ncomp", "watmin",
"elec", "floor", "walls", "roof", "asset_wardrobe",
"asset_table", "asset_chair", "asset_khat",
"asset_chouki", "asset_tv", "asset_refrig",
"asset_bike", "asset_moto", "asset_sewmach",
"asset_mobile"), type = "blip2",
learners = learner_list2, maximize = TRUE, complex = TRUE,
realistic = FALSE
)
tmle_fit_missing_dynamic <- tmle3(tmle_spec_dynamic_missing, data1, node_list2, learner_list2)
Error in (function (params = list(), data, nrounds, watchlist = list(), :
second argument dtrain must be xgb.DMatrix
Error in (function (params = list(), data, nrounds, watchlist = list(), :
second argument dtrain must be xgb.DMatrix
In addition: Warning message:
In private$.train(processed_task, trained_sublearners) :
Lrnr_xgboost_100_1 failed with message: Error in (function (params = list(), data, nrounds, watchlist = list(), :
second argument dtrain must be xgb.DMatrix
. It will be removed from the stack
Error in (function (params = list(), data, nrounds, watchlist = list(), :
second argument dtrain must be xgb.DMatrix
Error in (function (params = list(), data, nrounds, watchlist = list(), :
second argument dtrain must be xgb.DMatrix
Error in (function (params = list(), data, nrounds, watchlist = list(), :
second argument dtrain must be xgb.DMatrix
Error in (function (params = list(), data, nrounds, watchlist = list(), :
second argument dtrain must be xgb.DMatrix
Error in (function (params = list(), data, nrounds, watchlist = list(), :
second argument dtrain must be xgb.DMatrix
Error in (function (params = list(), data, nrounds, watchlist = list(), :
second argument dtrain must be xgb.DMatrix
Error in (function (params = list(), data, nrounds, watchlist = list(), :
second argument dtrain must be xgb.DMatrix
Error in (function (params = list(), data, nrounds, watchlist = list(), :
second argument dtrain must be xgb.DMatrix
Error in (function (params = list(), data, nrounds, watchlist = list(), :
second argument dtrain must be xgb.DMatrix
Error in nnls::nnls(as.matrix(x), y) : NA in input.
In addition: There were 11 warnings (use warnings() to see them)
Failed on Lrnr_nnls_TRUE
Error in self$compute_step() :
Error in nnls::nnls(as.matrix(x), y) : NA in input.
sessionInfo()
R version 4.5.2 (2025-10-31 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows 11 x64 (build 22631)
Matrix products: default
LAPACK version 3.12.1
locale:
[1] LC_COLLATE=Finnish_Finland.utf8 LC_CTYPE=Finnish_Finland.utf8 LC_MONETARY=Finnish_Finland.utf8 LC_NUMERIC=C
[5] LC_TIME=Finnish_Finland.utf8
time zone: Europe/Helsinki
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] future_1.69.0 data.table_1.18.2.1 tmle3mopttx_1.0.0 tmle3_0.2.0 sl3_1.4.5
loaded via a namespace (and not attached):
[1] tidyselect_1.2.1 psych_2.5.6 timeDate_4052.112 dplyr_1.2.0 farver_2.1.2 R.utils_2.13.0
[7] S7_0.2.1 fastmap_1.2.0 pROC_1.19.0.1 caret_7.0-1 digest_0.6.39 rpart_4.1.24
[13] timechange_0.4.0 lifecycle_1.0.5 Rsolnp_2.0.1 survival_3.8-3 delayed_0.5.0 ROCR_1.0-12
[19] magrittr_2.0.4 compiler_4.5.2 rlang_1.1.7 progress_1.2.3 tools_4.5.2 igraph_2.2.2
[25] prettyunits_1.2.0 htmlwidgets_1.6.4 xgboost_1.7.11.1 mnormt_2.1.1 plyr_1.8.9 RColorBrewer_1.1-3
[31] abind_1.4-8 numDeriv_2016.8-1.1 withr_3.0.2 purrr_1.2.1 R.oo_1.27.1 nnet_7.3-20
[37] grid_4.5.2 stats4_4.5.2 ggplot2_4.0.2 globals_0.19.0 scales_1.4.0 iterators_1.0.14
[43] MASS_7.3-65 BBmisc_1.13.1 cli_3.6.5 mvtnorm_1.3-3 crayon_1.5.3 generics_0.1.4
[49] biglm_0.9-3 rstudioapi_0.17.1 future.apply_1.20.1 reshape2_1.4.5 visNetwork_2.1.4 DBI_1.2.3
[55] stringr_1.6.0 nnls_1.6 splines_4.5.2 assertthat_0.2.1 parallel_4.5.2 vctrs_0.7.1
[61] hardhat_1.4.2 Matrix_1.7-4 jsonlite_2.0.0 hms_1.1.4 listenv_0.10.0 foreach_1.5.2
[67] speedglm_0.3-5 gower_1.0.2 recipes_1.3.1 glue_1.8.0 parallelly_1.46.1 rstackdeque_1.1.1
[73] codetools_0.2-20 lubridate_1.9.5 stringi_1.8.7 gtable_0.3.6 tibble_3.3.1 pillar_1.11.1
[79] htmltools_0.5.9 ipred_0.9-15 truncnorm_1.0-9 origami_1.0.7 lava_1.8.2 R6_2.6.1
[85] Rdpack_2.6.6 lattice_0.22-7 rbibutils_2.4.1 R.methodsS3_1.8.2 backports_1.5.0 class_7.3-23
[91] Rcpp_1.1.1 uuid_1.2-2 nlme_3.1-168 prodlim_2025.04.28 checkmate_2.3.4 pkgconfig_2.0.3
[97] ModelMetrics_1.2.2.2
Hello,
We are preparing a large, real-world investigation that will use targeted learning methods to quantify average treatment effects and to derive optimal personalized treatment rules across four internet-delivered cognitive behavioral therapy programs for prevalent emotional disorders. Our statistical implementation relies on the tlverse infrastructure, in particular tmle3, sl3, and tmle3mopttx. The tlverse handbook has played a key role in guiding our conceptual understanding and analytic pipeline. We greatly appreciate the substantial effort invested in building and sustaining these advanced methodological tools, which have made rigorous targeted learning procedures feasible for applied researchers.
Addressing missing data in a continuous outcome is critical for our planned analyses. When extending the washb example from the tlverse handbook (https://tlverse.org/tlverse-handbook/tmle3.html
) to incorporate missingness in the outcome variable, we encountered following errors in both the ATE estimation via tmle3 and the optimal dynamic treatment rule estimation via tmle3mopttx (shortened with “…”):
“Error in (function (params = list(), data, nrounds, watchlist = list(), ...) :
second argument dtrain must be xgb.DMatrix
…
Failed on Lrnr_nnls_TRUE
Error in self$compute_step() :
Error in nnls::nnls(as.matrix(x), y) : NA in input.”
It is notable that the same models ran successfully under a complete-case specification without outcome missingness; the errors emerged only after introducing missingness in Y.
Whole code and errors and sessioninfo:
R version 4.5.2 (2025-10-31 ucrt) -- "[Not] Part in a Rumble"
Copyright (C) 2025 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
FALSE TRUE
49 4646
1 2 3 4 5 6 7
1165 585 563 591 585 583 574
#WITH MISSING DATA THE SAME CODE DOES NOT WORK
FALSE TRUE
3717 929
Matrix products: default
LAPACK version 3.12.1
locale:
[1] LC_COLLATE=Finnish_Finland.utf8 LC_CTYPE=Finnish_Finland.utf8 LC_MONETARY=Finnish_Finland.utf8 LC_NUMERIC=C
[5] LC_TIME=Finnish_Finland.utf8
time zone: Europe/Helsinki
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] future_1.69.0 data.table_1.18.2.1 tmle3mopttx_1.0.0 tmle3_0.2.0 sl3_1.4.5
loaded via a namespace (and not attached):
[1] tidyselect_1.2.1 psych_2.5.6 timeDate_4052.112 dplyr_1.2.0 farver_2.1.2 R.utils_2.13.0
[7] S7_0.2.1 fastmap_1.2.0 pROC_1.19.0.1 caret_7.0-1 digest_0.6.39 rpart_4.1.24
[13] timechange_0.4.0 lifecycle_1.0.5 Rsolnp_2.0.1 survival_3.8-3 delayed_0.5.0 ROCR_1.0-12
[19] magrittr_2.0.4 compiler_4.5.2 rlang_1.1.7 progress_1.2.3 tools_4.5.2 igraph_2.2.2
[25] prettyunits_1.2.0 htmlwidgets_1.6.4 xgboost_1.7.11.1 mnormt_2.1.1 plyr_1.8.9 RColorBrewer_1.1-3
[31] abind_1.4-8 numDeriv_2016.8-1.1 withr_3.0.2 purrr_1.2.1 R.oo_1.27.1 nnet_7.3-20
[37] grid_4.5.2 stats4_4.5.2 ggplot2_4.0.2 globals_0.19.0 scales_1.4.0 iterators_1.0.14
[43] MASS_7.3-65 BBmisc_1.13.1 cli_3.6.5 mvtnorm_1.3-3 crayon_1.5.3 generics_0.1.4
[49] biglm_0.9-3 rstudioapi_0.17.1 future.apply_1.20.1 reshape2_1.4.5 visNetwork_2.1.4 DBI_1.2.3
[55] stringr_1.6.0 nnls_1.6 splines_4.5.2 assertthat_0.2.1 parallel_4.5.2 vctrs_0.7.1
[61] hardhat_1.4.2 Matrix_1.7-4 jsonlite_2.0.0 hms_1.1.4 listenv_0.10.0 foreach_1.5.2
[67] speedglm_0.3-5 gower_1.0.2 recipes_1.3.1 glue_1.8.0 parallelly_1.46.1 rstackdeque_1.1.1
[73] codetools_0.2-20 lubridate_1.9.5 stringi_1.8.7 gtable_0.3.6 tibble_3.3.1 pillar_1.11.1
[79] htmltools_0.5.9 ipred_0.9-15 truncnorm_1.0-9 origami_1.0.7 lava_1.8.2 R6_2.6.1
[85] Rdpack_2.6.6 lattice_0.22-7 rbibutils_2.4.1 R.methodsS3_1.8.2 backports_1.5.0 class_7.3-23
[91] Rcpp_1.1.1 uuid_1.2-2 nlme_3.1-168 prodlim_2025.04.28 checkmate_2.3.4 pkgconfig_2.0.3
[97] ModelMetrics_1.2.2.2