Skip to content

Commit 7695e3c

Browse files
committed
Better use of preload data
1 parent 03d03e9 commit 7695e3c

File tree

4 files changed

+30
-38
lines changed

4 files changed

+30
-38
lines changed

R/commonMachineLearningClassification.R

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,7 @@
4242
}
4343

4444
.mlClassificationReadData <- function(dataset, options) {
45-
dataset <- .readDataClassificationRegressionAnalyses(dataset, options)
46-
if (length(unlist(options[["predictors"]])) > 0 && options[["scaleVariables"]]) {
47-
dataset[, options[["predictors"]]] <- .scaleNumericData(dataset[, options[["predictors"]], drop = FALSE])
48-
}
45+
dataset <- .readDataClassificationRegressionAnalyses(dataset, options, include_weights = FALSE)
4946
if (options[["target"]] != "") {
5047
dataset[, options[["target"]]] <- factor(dataset[, options[["target"]]], ordered = FALSE)
5148
}

R/commonMachineLearningClustering.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
.mlClusteringReadData <- function(dataset, options) {
3434
predictors <- unlist(options[["predictors"]])
3535
predictors <- predictors[predictors != ""]
36-
dataset <- .readAndAddCompleteRowIndices(options, "predictors")
36+
dataset <- jaspBase::excludeNaListwise(dataset, predictors)
3737
if (options[["scaleVariables"]] && length(unlist(options[["predictors"]])) > 0) {
3838
dataset <- .scaleNumericData(dataset)
3939
}

R/commonMachineLearningRegression.R

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,21 +44,39 @@
4444
return(opt)
4545
}
4646

47-
.readDataRegressionAnalyses <- function(dataset, options, jaspResults) {
48-
dataset <- .readDataClassificationRegressionAnalyses(dataset, options)
49-
if (length(unlist(options[["predictors"]])) > 0 && options[["scaleVariables"]]) {
50-
dataset[, options[["predictors"]]] <- .scaleNumericData(dataset[, options[["predictors"]], drop = FALSE])
51-
}
47+
.readDataRegressionAnalyses <- function(dataset, options, jaspResults, include_weights = FALSE) {
48+
dataset <- .readDataClassificationRegressionAnalyses(dataset, options, include_weights)
5249
return(dataset)
5350
}
5451

55-
.readDataClassificationRegressionAnalyses <- function(dataset, options) {
52+
.readDataClassificationRegressionAnalyses <- function(dataset, options, include_weights) {
5653

54+
target <- NULL
55+
weights <- NULL
5756
testSetIndicator <- NULL
58-
if (options[["testSetIndicatorVariable"]] != "" && options[["holdoutData"]] == "testSetIndicator")
59-
testSetIndicator <- "testSetIndicatorVariable"
57+
if (options[["target"]] != "") {
58+
target <- options[["target"]]
59+
}
60+
if (include_weights && options[["weights"]] != "") {
61+
weights <- options[["weights"]]
62+
}
63+
if (options[["testSetIndicatorVariable"]] != "" && options[["holdoutData"]] == "testSetIndicator") {
64+
testSetIndicator <- options[["testSetIndicatorVariable"]]
65+
}
6066

61-
return(.readAndAddCompleteRowIndices(options, c("target", "predictors"), testSetIndicator))
67+
predictors <- unlist(options["predictors"])
68+
predictors <- predictors[predictors != ""]
69+
dataset <- jaspBase::excludeNaListwise(dataset, c(target, predictors, weights, testSetIndicator))
70+
71+
# Scale numeric predictors
72+
if (length(unlist(options[["predictors"]])) > 0 && options[["scaleVariables"]]) {
73+
dataset[, options[["predictors"]]] <- .scaleNumericData(dataset[, options[["predictors"]], drop = FALSE])
74+
}
75+
# Make sure the test set indicator is numeric
76+
if (options[["testSetIndicatorVariable"]] != "" && options[["holdoutData"]] == "testSetIndicator")
77+
dataset[[options[["testSetIndicatorVariable"]]]] <- as.numeric(dataset[[options[["testSetIndicatorVariable"]]]])
78+
79+
return(dataset)
6280
}
6381

6482
.readAndAddCompleteRowIndices <- function(options, optionNames = NULL, optionNamesAsNumeric = NULL) {

R/mlRegressionRegularized.R

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
mlRegressionRegularized <- function(jaspResults, dataset, options, ...) {
1919

2020
# Preparatory work
21-
dataset <- .mlRegressionRegularizedReadData(dataset, options)
21+
dataset <- .readDataRegressionAnalyses(dataset, options, include_weights = TRUE)
2222
.mlRegressionErrorHandling(dataset, options, type = "regularized")
2323

2424
# Check if analysis is ready to run
@@ -58,29 +58,6 @@ mlRegressionRegularized <- function(jaspResults, dataset, options, ...) {
5858
.mlRegressionRegularizedPlotLambda(options, jaspResults, ready, position = 10)
5959
}
6060

61-
# Read dataset
62-
.mlRegressionRegularizedReadData <- function(dataset, options) {
63-
target <- NULL
64-
weights <- NULL
65-
testSetIndicator <- NULL
66-
if (options[["target"]] != "") {
67-
target <- options[["target"]]
68-
}
69-
if (options[["weights"]] != "") {
70-
weights <- options[["weights"]]
71-
}
72-
if (options[["testSetIndicatorVariable"]] != "" && options[["holdoutData"]] == "testSetIndicator")
73-
testSetIndicator <- "testSetIndicatorVariable"
74-
75-
predictors <- unlist(options["predictors"])
76-
predictors <- predictors[predictors != ""]
77-
dataset <- .readAndAddCompleteRowIndices(options, c("target", "predictors", "weights"), testSetIndicator)
78-
if (length(unlist(options[["predictors"]])) > 0 && options[["scaleVariables"]]) {
79-
dataset[, options[["predictors"]]] <- .scaleNumericData(dataset[, options[["predictors"]], drop = FALSE])
80-
}
81-
return(dataset)
82-
}
83-
8461
.regularizedRegression <- function(dataset, options, jaspResults) {
8562
# Set model-specific parameters
8663
alpha <- switch(options[["penalty"]],

0 commit comments

Comments
 (0)