diff --git a/R/dataset.R b/R/dataset.R index cef3c9c..f82392b 100644 --- a/R/dataset.R +++ b/R/dataset.R @@ -2,7 +2,7 @@ loadCorrectDataset <- function(x) { if (is.matrix(x) || is.data.frame(x)) { return(x) } else if (is.character(x)) { - if (! endsWith(x, ".csv")) { + if (!endsWith(x, ".csv")) { x <- paste0(x, ".csv") } @@ -50,6 +50,11 @@ findAllColumnNamesInOptions <- function(options, allColumnNames) { preloadDataset <- function(datasetPathOrObject, options) { + if (is.null(datasetPathOrObject)) { + .setInternal("preloadedDataset", data.frame()) + return() + } + dataset <- loadCorrectDataset(datasetPathOrObject) # repair any names like "", which cause false positives in findAllColumnNamesAndTypes diff --git a/R/options.R b/R/options.R index 028ba73..56d02d2 100644 --- a/R/options.R +++ b/R/options.R @@ -297,8 +297,17 @@ parsePreloadDataFromDescriptionQml <- function(analysisName) { description <- parseDescriptionQmlFromAnalysisName(analysisName) - preloadData <- isTRUE(description[["Description"]][["preloadData"]]) || isTRUE(description[[analysisName]][["preloadData"]]) - if (!preloadData) + # is preloadData globally set to TRUE? + preloadDataGlobal <- isTRUE(description[["Description"]][["preloadData"]]) + # is preloadData even set for this specific analysis? + specifiedPreloadData <- "preloadData" %in% names(description[[analysisName]]) + # is preloadData set to TRUE for this specific analysis? + preloadDataAnalysis <- specifiedPreloadData && isTRUE(description[[analysisName]][["preloadData"]]) + # if preloadData set to TRUE for the analysis, or if set globally to TRUE and not set for the analysis + preloadData <- preloadDataAnalysis || (preloadDataGlobal && !specifiedPreloadData) + + # show a warning but only if the preloadData is not set for the analysis + if (!preloadData && !specifiedPreloadData) lifecycle::deprecate_warn( when = "0.19.2", what = I(sprintf("The analysis `%s` does not preload data. Please update inst/Description.qml, add `preloadData: true`, and fix any minor issues.", analysisName)) diff --git a/R/run.R b/R/run.R index 6bac20a..98ba738 100644 --- a/R/run.R +++ b/R/run.R @@ -54,7 +54,7 @@ #' #' #' @export runAnalysis -runAnalysis <- function(name, dataset, options, view = TRUE, quiet = FALSE, makeTests = FALSE) { +runAnalysis <- function(name, dataset = NULL, options, view = TRUE, quiet = FALSE, makeTests = FALSE) { if (is.list(options) && is.null(names(options)) && any(names(unlist(lapply(options, attributes))) == "analysisName")) stop("The provided list of options is not named. Did you mean to index in the options list (e.g., options[[1]])?") diff --git a/JASPTools.Rproj b/jaspTools.Rproj similarity index 100% rename from JASPTools.Rproj rename to jaspTools.Rproj