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