From b8e7aab8f12d9fda37054c2e649bbc975733b4c2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20G=C3=A4rber?= <florian.gaerber@uni-hamburg.de>
Date: Thu, 20 Jul 2023 13:07:09 +0200
Subject: [PATCH] Fix failing `\donttest` examples in `devtools::check()`

---
 R/addSurrogates.R          |  6 +++---
 R/build_clusters.R         | 20 +++++++++++++++++---
 R/reduce.surrogates.R      | 22 +++++++++++++++++++---
 R/var.relations.R          | 10 +++++++++-
 R/var.relations.mfi.R      |  9 ++++++++-
 R/variable_selection_md.R  |  2 +-
 R/variable_selection_mir.R |  2 +-
 R/variable_selection_smd.R |  2 +-
 man/build.clusters.Rd      | 20 +++++++++++++++++---
 man/reduce.surrogates.Rd   | 22 +++++++++++++++++++---
 man/var.relations.Rd       | 10 +++++++++-
 man/var.relations.mfi.Rd   |  9 ++++++++-
 man/var.select.md.Rd       |  2 +-
 man/var.select.mir.Rd      |  2 +-
 man/var.select.smd.Rd      |  2 +-
 15 files changed, 115 insertions(+), 25 deletions(-)

diff --git a/R/addSurrogates.R b/R/addSurrogates.R
index 40351af..ed3fafd 100644
--- a/R/addSurrogates.R
+++ b/R/addSurrogates.R
@@ -2,8 +2,6 @@
 #'
 #' This function adds surrogate variables and adjusted agreement values to a forest that was created by getTreeranger.
 #'
-#' @useDynLib RFSurrogates, .registration = TRUE, .fixes = "C_"
-#'
 #' @param RF random forest object created by ranger (with keep.inbag=TRUE).
 #' @param trees list of trees created by getTreeranger.
 #' @param s Predefined number of surrogate splits (it may happen that the actual number of surrogate splits differes in individual nodes). Default is 1 \% of no. of variables.
@@ -74,6 +72,8 @@ getSurrogate = function(surr.par, k = 1, maxsurr) {
 #'
 #' This is an internal function
 #'
+#' @useDynLib RFSurrogates, .registration = TRUE
+#'
 #' @keywords internal
 SurrTree = function(j,wt,Xdata,controls,column.names,tree,maxsurr,ncat) {
   node = tree[j,]
@@ -92,7 +92,7 @@ SurrTree = function(j,wt,Xdata,controls,column.names,tree,maxsurr,ncat) {
   }
 
 
-  surrogate.parameters = .Call(C_getSurrogates,
+  surrogate.parameters = .Call("getSurrogates",
                                ncat = as.integer(ncat),
                                wt = as.numeric(wt),
                                X = as.matrix(Xdata),
diff --git a/R/build_clusters.R b/R/build_clusters.R
index af66275..dcf428b 100644
--- a/R/build_clusters.R
+++ b/R/build_clusters.R
@@ -19,13 +19,27 @@
 #'  allvariables = colnames(x)# extract variables names
 #'  nvar = length(allvariables)   # count number of variables
 #'  set.seed(42)
-#'  RF = ranger::ranger(data = SMD_example_data, dependent.variable.name = "y", num.trees = 10, keep.inbag = TRUE,mtry = floor(nvar^(3/4)), min.node.size = 1)
+#'  RF = ranger::ranger(
+#'     data = SMD_example_data,
+#'     dependent.variable.name = "y",
+#'     num.trees = 10,
+#'     keep.inbag = TRUE,
+#'     mtry = floor(nvar^(3/4)),
+#'     min.node.size = 1,
+#'     num.threads = 1)
 #'  trees = getTreeranger(RF = RF, num.trees = 10)
 #'  trees.lay = addLayer(trees)
-#'  trees.surr = addSurrogates(RF = RF, trees = trees.lay, s = 10, Xdata = x, num.threads = NULL)
+#'  trees.surr = addSurrogates(RF = RF, trees = trees.lay, s = 10, Xdata = x, num.threads = 1)
 #'
 #'  # investigate variable relations
-#'  rel=var.relations(forest = list(trees = trees.surr, allvariables = allvariables), variables = allvariables, candidates = allvariables, t = 10)
+#'  rel=var.relations(
+#'     x = data.frame(),
+#'     create.forest = FALSE,
+#'     forest = list(trees = trees.surr, allvariables = allvariables),
+#'     variables = allvariables,
+#'     candidates = allvariables,
+#'     t = 10,
+#'     num.threads = 1)
 #'  groups = build.clusters(rel)
 #' }
 #'
diff --git a/R/reduce.surrogates.R b/R/reduce.surrogates.R
index a5745eb..18abf0f 100644
--- a/R/reduce.surrogates.R
+++ b/R/reduce.surrogates.R
@@ -16,15 +16,31 @@
 #' ###### use result of SMD variable importance and reduce surrogate variables to 10
 #' # select variables with smd variable importance (usually more trees are needed)
 #' set.seed(42)
-#' res = var.select.smd(x = SMD_example_data[,2:ncol(SMD_example_data)], y = SMD_example_data[,1], s = 100, num.trees = 10)
+#' res = var.select.smd(
+#'   x = as.data.frame(SMD_example_data[,2:ncol(SMD_example_data)]),
+#'   y = SMD_example_data[,1],
+#'   s = 100,
+#'   num.trees = 10,
+#'   num.threads = 1)
 #' forest.new = reduce.surrogates(forest = res$forest, s = 10)
 #'
 #' # execute SMD on tree with reduced number of surrogates
-#' res.new = var.select.smd(create.forest = FALSE, forest = forest.new)
+#' res.new = var.select.smd(
+#'   x = data.frame(),
+#'   create.forest = FALSE,
+#'   forest = forest.new,
+#'   num.threads = 1)
 #' res.new$var
 #'
 #' #' # investigate variable relations
-#' rel = var.relations(forest = forest.new, variables=c("X1","X7"), candidates = res$forest[["allvariables"]][1:100], t = 5)
+#' rel = var.relations(
+#'   x = data.frame(),
+#'   create.forest = FALSE,
+#'   forest = forest.new,
+#'   variables=c("X1","X7"),
+#'   candidates = res$forest[["allvariables"]][1:100],
+#'   t = 5,
+#'   num.threads = 1)
 #' rel$var
 #'}
 #' @export
diff --git a/R/var.relations.R b/R/var.relations.R
index 75fee16..9edc76a 100644
--- a/R/var.relations.R
+++ b/R/var.relations.R
@@ -28,7 +28,15 @@
 #' \donttest{
 #' # calculate variable relations
 #' set.seed(42)
-#' res = var.relations(x = x, y = y, s = 10, num.trees = 100, variables = c("X1","X7"), candidates = colnames(x)[1:100], t = 5)
+#' res = var.relations(
+#'   x = x,
+#'   y = y,
+#'   s = 10,
+#'   num.trees = 10,
+#'   variables = c("X1","X7"),
+#'   candidates = colnames(x)[1:100],
+#'   t = 5,
+#'   num.threads = 1)
 #' res$var
 #' }
 #'
diff --git a/R/var.relations.mfi.R b/R/var.relations.mfi.R
index bab78e8..563fb23 100644
--- a/R/var.relations.mfi.R
+++ b/R/var.relations.mfi.R
@@ -31,7 +31,14 @@
 #' \donttest{
 #' # calculate variable relations
 #' set.seed(42)
-#' res = var.relations.mfi(x = x, y = y, s = 10, num.trees = 100, variables = c("X1","X7"), candidates = colnames(x)[1:100])
+#' res = var.relations.mfi(
+#'   x = x,
+#'   y = y,
+#'   s = 10,
+#'   num.trees = 10,
+#'   variables = c("X1","X7"),
+#'   candidates = colnames(x)[1:100],
+#'   num.threads = 1)
 #' res$var.rel[[1]]
 #' }
 #'
diff --git a/R/variable_selection_md.R b/R/variable_selection_md.R
index 42ec1fd..eb2aa7b 100644
--- a/R/variable_selection_md.R
+++ b/R/variable_selection_md.R
@@ -44,7 +44,7 @@
 #' \donttest{
 #' # select variables (usually more trees are needed)
 #' set.seed(42)
-#' res = var.select.md(x = SMD_example_data[,2:ncol(SMD_example_data)], y = SMD_example_data[,1], num.trees = 10)
+#' res = var.select.md(x = SMD_example_data[,2:ncol(SMD_example_data)], y = SMD_example_data[,1], num.trees = 10, num.threads = 1)
 #' res$var
 #' }
 #'
diff --git a/R/variable_selection_mir.R b/R/variable_selection_mir.R
index 93d65ae..e053bc8 100644
--- a/R/variable_selection_mir.R
+++ b/R/variable_selection_mir.R
@@ -50,7 +50,7 @@
 #' \donttest{
 #' # select variables (usually more trees are needed)
 #' set.seed(42)
-#' res = var.select.mir(x = SMD_example_data[,2:ncol(SMD_example_data)], y = SMD_example_data[,1],s = 10, num.trees = 10)
+#' res = var.select.mir(x = SMD_example_data[,2:ncol(SMD_example_data)], y = SMD_example_data[,1],s = 10, num.trees = 10, num.threads = 1)
 #' res$var
 #' }
 #'@references
diff --git a/R/variable_selection_smd.R b/R/variable_selection_smd.R
index e8c3ad4..179f9d9 100644
--- a/R/variable_selection_smd.R
+++ b/R/variable_selection_smd.R
@@ -49,7 +49,7 @@
 #' \donttest{
 #' # select variables (usually more trees are needed)
 #' set.seed(42)
-#' res = var.select.smd(x = SMD_example_data[,2:ncol(SMD_example_data)], y = SMD_example_data[,1],s = 10, num.trees = 10)
+#' res = var.select.smd(x = SMD_example_data[,2:ncol(SMD_example_data)], y = SMD_example_data[,1],s = 10, num.trees = 10, num.threads = 1)
 #' res$var
 #' }
 #'@references
diff --git a/man/build.clusters.Rd b/man/build.clusters.Rd
index 965c0c1..206ca09 100644
--- a/man/build.clusters.Rd
+++ b/man/build.clusters.Rd
@@ -29,13 +29,27 @@ data("SMD_example_data")
  allvariables = colnames(x)# extract variables names
  nvar = length(allvariables)   # count number of variables
  set.seed(42)
- RF = ranger::ranger(data = SMD_example_data, dependent.variable.name = "y", num.trees = 10, keep.inbag = TRUE,mtry = floor(nvar^(3/4)), min.node.size = 1)
+ RF = ranger::ranger(
+    data = SMD_example_data,
+    dependent.variable.name = "y",
+    num.trees = 10,
+    keep.inbag = TRUE,
+    mtry = floor(nvar^(3/4)),
+    min.node.size = 1,
+    num.threads = 1)
  trees = getTreeranger(RF = RF, num.trees = 10)
  trees.lay = addLayer(trees)
- trees.surr = addSurrogates(RF = RF, trees = trees.lay, s = 10, Xdata = x, num.threads = NULL)
+ trees.surr = addSurrogates(RF = RF, trees = trees.lay, s = 10, Xdata = x, num.threads = 1)
 
  # investigate variable relations
- rel=var.relations(forest = list(trees = trees.surr, allvariables = allvariables), variables = allvariables, candidates = allvariables, t = 10)
+ rel=var.relations(
+    x = data.frame(),
+    create.forest = FALSE,
+    forest = list(trees = trees.surr, allvariables = allvariables),
+    variables = allvariables,
+    candidates = allvariables,
+    t = 10,
+    num.threads = 1)
  groups = build.clusters(rel)
 }
 
diff --git a/man/reduce.surrogates.Rd b/man/reduce.surrogates.Rd
index b21ab58..ff5f4b7 100644
--- a/man/reduce.surrogates.Rd
+++ b/man/reduce.surrogates.Rd
@@ -25,15 +25,31 @@ data("SMD_example_data")
 ###### use result of SMD variable importance and reduce surrogate variables to 10
 # select variables with smd variable importance (usually more trees are needed)
 set.seed(42)
-res = var.select.smd(x = SMD_example_data[,2:ncol(SMD_example_data)], y = SMD_example_data[,1], s = 100, num.trees = 10)
+res = var.select.smd(
+  x = as.data.frame(SMD_example_data[,2:ncol(SMD_example_data)]),
+  y = SMD_example_data[,1],
+  s = 100,
+  num.trees = 10,
+  num.threads = 1)
 forest.new = reduce.surrogates(forest = res$forest, s = 10)
 
 # execute SMD on tree with reduced number of surrogates
-res.new = var.select.smd(create.forest = FALSE, forest = forest.new)
+res.new = var.select.smd(
+  x = data.frame(),
+  create.forest = FALSE,
+  forest = forest.new,
+  num.threads = 1)
 res.new$var
 
 #' # investigate variable relations
-rel = var.relations(forest = forest.new, variables=c("X1","X7"), candidates = res$forest[["allvariables"]][1:100], t = 5)
+rel = var.relations(
+  x = data.frame(),
+  create.forest = FALSE,
+  forest = forest.new,
+  variables=c("X1","X7"),
+  candidates = res$forest[["allvariables"]][1:100],
+  t = 5,
+  num.threads = 1)
 rel$var
 }
 }
diff --git a/man/var.relations.Rd b/man/var.relations.Rd
index f056eae..c34efdf 100644
--- a/man/var.relations.Rd
+++ b/man/var.relations.Rd
@@ -88,7 +88,15 @@ y = SMD_example_data[,1]
 \donttest{
 # calculate variable relations
 set.seed(42)
-res = var.relations(x = x, y = y, s = 10, num.trees = 100, variables = c("X1","X7"), candidates = colnames(x)[1:100], t = 5)
+res = var.relations(
+  x = x,
+  y = y,
+  s = 10,
+  num.trees = 10,
+  variables = c("X1","X7"),
+  candidates = colnames(x)[1:100],
+  t = 5,
+  num.threads = 1)
 res$var
 }
 
diff --git a/man/var.relations.mfi.Rd b/man/var.relations.mfi.Rd
index 94cf036..82cc354 100644
--- a/man/var.relations.mfi.Rd
+++ b/man/var.relations.mfi.Rd
@@ -93,7 +93,14 @@ y = SMD_example_data[,1]
 \donttest{
 # calculate variable relations
 set.seed(42)
-res = var.relations.mfi(x = x, y = y, s = 10, num.trees = 100, variables = c("X1","X7"), candidates = colnames(x)[1:100])
+res = var.relations.mfi(
+  x = x,
+  y = y,
+  s = 10,
+  num.trees = 10,
+  variables = c("X1","X7"),
+  candidates = colnames(x)[1:100],
+  num.threads = 1)
 res$var.rel[[1]]
 }
 
diff --git a/man/var.select.md.Rd b/man/var.select.md.Rd
index f0dcc70..c0f9318 100644
--- a/man/var.select.md.Rd
+++ b/man/var.select.md.Rd
@@ -80,7 +80,7 @@ data("SMD_example_data")
 \donttest{
 # select variables (usually more trees are needed)
 set.seed(42)
-res = var.select.md(x = SMD_example_data[,2:ncol(SMD_example_data)], y = SMD_example_data[,1], num.trees = 10)
+res = var.select.md(x = SMD_example_data[,2:ncol(SMD_example_data)], y = SMD_example_data[,1], num.trees = 10, num.threads = 1)
 res$var
 }
 
diff --git a/man/var.select.mir.Rd b/man/var.select.mir.Rd
index 8932956..cde216d 100644
--- a/man/var.select.mir.Rd
+++ b/man/var.select.mir.Rd
@@ -103,7 +103,7 @@ data("SMD_example_data")
 \donttest{
 # select variables (usually more trees are needed)
 set.seed(42)
-res = var.select.mir(x = SMD_example_data[,2:ncol(SMD_example_data)], y = SMD_example_data[,1],s = 10, num.trees = 10)
+res = var.select.mir(x = SMD_example_data[,2:ncol(SMD_example_data)], y = SMD_example_data[,1],s = 10, num.trees = 10, num.threads = 1)
 res$var
 }
 }
diff --git a/man/var.select.smd.Rd b/man/var.select.smd.Rd
index 488d2a9..613b0b9 100644
--- a/man/var.select.smd.Rd
+++ b/man/var.select.smd.Rd
@@ -87,7 +87,7 @@ data("SMD_example_data")
 \donttest{
 # select variables (usually more trees are needed)
 set.seed(42)
-res = var.select.smd(x = SMD_example_data[,2:ncol(SMD_example_data)], y = SMD_example_data[,1],s = 10, num.trees = 10)
+res = var.select.smd(x = SMD_example_data[,2:ncol(SMD_example_data)], y = SMD_example_data[,1],s = 10, num.trees = 10, num.threads = 1)
 res$var
 }
 }
-- 
GitLab