diff --git a/.circleci/config.yml b/.circleci/config.yml index a59ed99d..ec6d40e9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -22,7 +22,7 @@ jobs: sudo apt-get install -y r-base-core cmake - run: command: | - sudo apt-get install -y libxml2-dev + sudo apt-get install -y libxml2-dev libuv1-dev - run: command: | echo "options(Ncpus=4)" >> ~/.Rprofile diff --git a/DESCRIPTION b/DESCRIPTION index 3f553102..a9573b74 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -74,11 +74,13 @@ Imports: childsds, purrr, tibble, - tidyselect + tidyselect, + stats, + lubridate Suggests: spelling, testthat, tidytable -RoxygenNote: 7.3.3 +RoxygenNote: 8.0.0 Encoding: UTF-8 Language: en-GB diff --git a/NAMESPACE b/NAMESPACE index 9f7a5fbd..0474b2b1 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -36,6 +36,7 @@ export(dataFrameFillDS) export(dataFrameSortDS) export(dataFrameSubsetDS1) export(dataFrameSubsetDS2) +export(dateDS) export(densityGridDS) export(dimDS) export(dmtC2SDS) @@ -99,6 +100,7 @@ export(minMaxRandDS) export(namesDS) export(nsDS) export(numNaDS) +export(predictDS) export(qlsplineDS) export(quantileMeanDS) export(rBinomDS) @@ -118,8 +120,10 @@ export(recodeValuesDS) export(repDS) export(replaceNaDS) export(rmDS) +export(roundDS) export(rowColCalcDS) export(sampleDS) +export(scaleDS) export(scatterPlotDS) export(seqDS) export(setSeedDS) diff --git a/R/dateDS.R b/R/dateDS.R new file mode 100644 index 00000000..f6b442cd --- /dev/null +++ b/R/dateDS.R @@ -0,0 +1,186 @@ +#' +#' @title dateDS +#' @description Takes an object that is either a data-frame column or a vector, and can do extraction of +#' components of full date (\code{extractdate}), can combine date components to a full date (\code{makedate}), +#' or can calculate the time between two dates (\code{timebetween}). +#' +#' @details +#' If the input is a data-frame column, it must be provided in the \code{x} argument as data-frame$column. +#' Inputs for \code{extractdate} and \code{timebetween} must be date objects. +#' For \code{makedate}, three numeric vectors (year, month, day) must be provided in the correct order. +#' The \code{add.column} argument determines whether the result is added as a new column in the existing +#' data-frame (\code{TRUE}), or created as a new server-side object (\code{FALSE}). +#' Note: \code{add.column = TRUE} is only valid for data-frame inputs. +#' +#' +#' @param x Character vector specifying the server-side object(s). For data-frame columns, use the format \code{df$column}. +#' @param type Character string specifying the operation: \code{"extractdate"}, \code{"makedate"}, or \code{"timebetween"}. +#' @param newobj Character string for the name of the object that will be created on the server. Default is \code{"date.result"}. +#' @param unit Character string specifying the unit for \code{extractdate} or \code{timebetween}: \code{"days"}, \code{"months"}, or \code{"years"}. +#' @param add.column Logical. If \code{FALSE}, the result is created as a new server-side object; +#' if \code{TRUE}, the result is added as a new column in the existing data-frame. Default is \code{FALSE}. +#' +#' +#' @author Zulal Bekerecioglu +#' @return the created numeric vector or date object, or the updated dataframe with the added column +#' @export +#' +#' +dateDS <- function(x=NULL, type=NULL, + newobj=NULL, unit=NULL, add.column=NULL) { + + add.column <- as.logical(add.column) + + # If argument not in c("extractdate", "makedate", "timebetween") throw an error + if (!(type %in% c("extractdate", "makedate", "timebetween"))) { + stop("Invalid argument. Must be one of: ", paste(c("extractdate", "makedate", "timebetween"), collapse=", ")) + } + + # Check if input(s) are valid. + error_message <- "Input object couldn't be found. Please provide the correct format. + For vectors, supply an existing object name; for columns, use the format dataframe$column, + where 'dataframe' is the name of the data frame and 'column' is the column name, + and ensure that both exist." + + + # If x is NULL, throw and error. + if (is.null(x)) { + stop(error_message, call. = FALSE) + } + + # Each argument takes a unique number of elements, check if they match. + if (length(x) != 1 && type=="extractdate") { + stop(paste0("Invalid input length for argument '", type, "'. Expected ", 1, + " elements, but received ", length(x), ". Please provide exactly ", 1, + " object name(s) or column(s)."), call. = FALSE) + } + + if (length(x) != 3 && type=="makedate") { + stop(paste0("Invalid input length for argument '", type, "'. Expected ", 3, + " elements, but received ", length(x), ". Please provide exactly ", 3, + " object name(s) or column(s)."), call. = FALSE) + } + + if (length(x) != 2 && type=="timebetween") { + stop(paste0("Invalid input length for argument '", type, "'. Expected ", 2, + " elements, but received ", length(x), ". Please provide exactly ", 2, + " object name(s) or column(s)."), call. = FALSE) + } + + inputs <- vector("list", length(x)) + + # When add.column = TRUE, the client function ensures that at least one input is a column, + # and if multiple columns are provided, they all come from the same data-frame. + # Therefore, it is safe to use any of these data-frames as common_df on the server. + common_df <- NULL + + for (i in seq_along(x)) { + element <- x[i] + + # Each element must be a single string + if (!is.character(element) || length(element) != 1) stop(error_message, call. = FALSE) + + # Check if it is a df$col reference + if (grepl("\\$", element, perl = TRUE)) { + parts <- strsplit(element, "\\$", perl = TRUE)[[1]] + + # Validate both parts + if (length(parts) != 2 || !nzchar(parts[1]) || !nzchar(parts[2])) stop(error_message, call. = FALSE) + + # Try to get the dataframe + df <- tryCatch(get(parts[1]), error = function(e) NULL) + if (is.null(df)) stop(error_message, call. = FALSE) + + # Check that column exists + if (!(parts[2] %in% names(df))) stop(error_message, call. = FALSE) + + # Save the column values in the list + inputs[[i]] <- df[[parts[2]]] + common_df <- parts[1] + + } else { + # It's a plain object, just get it + obj <- tryCatch(get(element), error = function(e) NULL) + if (is.null(obj)) stop(error_message, call. = FALSE) + + inputs[[i]] <- obj + } + } + + + # extractdate + # x should be a column name or object with a date format, type should be provided, + # a new column or object with outputcolname will be created + if (type == "extractdate") { + + # Only one input is expected + date_input <- inputs[[1]] + + # Extract the requested component + result <- switch(unit, + days = lubridate::day(date_input), + months = lubridate::month(date_input), + years = lubridate::year(date_input), + stop("Invalid unit. Must be one of: days, months, years")) + } + + + # makedate + # inputcolname should be list of 3 strings: year-month-day + if (type == "makedate") { + + # inputs[[1]] = year, inputs[[2]] = month, inputs[[3]] = day + year_vec <- as.numeric(inputs[[1]]) + month_vec <- as.numeric(inputs[[2]]) + day_vec <- as.numeric(inputs[[3]]) + + # Basic plausibility checks + if (length(unique(sapply(list(year_vec, month_vec, day_vec), length))) != 1) { + stop("Inputs for 'makedate' must be of equal length.", call. = FALSE) + } + + if (any(year_vec < 1000 | year_vec > 3000, na.rm = TRUE)) { + stop("The 'year' input in 'makedate' must contain plausible 4-digit years (1000-3000). + Check that year, month, and day are given in the correct order (year, month, day).", call. = FALSE) + } + if (any(month_vec < 1 | month_vec > 12, na.rm = TRUE)) { + stop("The 'month' input in 'makedate' must contain values between 1 and 12. + Check that year, month, and day are given in the correct order (year, month, day).", call. = FALSE) + } + if (any(day_vec < 1 | day_vec > 31, na.rm = TRUE)) { + stop("The 'day' input in 'makedate' must contain values between 1 and 31. + Check that year, month, and day are given in the correct order (year, month, day).", call. = FALSE) + } + + + result <- lubridate::make_date(year = year_vec, + month = month_vec, + day = day_vec) + } + + + # timebetween + # inputcolname should be a list of 2 strings: start and end date + if (type == "timebetween") { + + # inputs[[1]] = start date, inputs[[2]] = end date + units <- list( + years = lubridate::period(years = 1), + months = lubridate::period(months = 1), + days = lubridate::period(days = 1) + ) + + result <- lubridate::interval(inputs[[1]], inputs[[2]]) %/% units[[unit]] + } + + # Save result based on add.column + if (!add.column) { + return(result) + } else { + # Assign to common_df as a new column + df <- get(common_df) + df[[newobj]] <- result + return(df) + } + +} diff --git a/R/glmDS2.R b/R/glmDS2.R index 9287075c..891aae71 100644 --- a/R/glmDS2.R +++ b/R/glmDS2.R @@ -382,7 +382,7 @@ glmDS2 <- function (formula, family, beta.vect, offset, weights, dataName) { errorMessage.combined <- "No errors" } - return(list(family=f, info.matrix=info.matrix, score.vect=score.vect, numsubs=numsubs, dev=dev, + return(list(family=f$family, info.matrix=info.matrix, score.vect=score.vect, numsubs=numsubs, dev=dev, Nvalid=Nvalid,Nmissing=Nmissing,Ntotal=Ntotal,disclosure.risk=disclosure.risk, errorMessage2=errorMessage.combined)) diff --git a/R/glmSLMADS.assign.R b/R/glmSLMADS.assign.R index f7b5fff4..68fe6929 100644 --- a/R/glmSLMADS.assign.R +++ b/R/glmSLMADS.assign.R @@ -21,21 +21,21 @@ glmSLMADS.assign <- function(formula, family, offsetName, weightsName, dataName) # Convert transmitable text for special link variance combinations back to full representation if(family=="quasigamma.link_log") {family<-"quasi(link=log,variance=mu^2)"} - + if(family=="Gamma.link_log") {family<-"Gamma(link=log)"} - + # Correctly name offset, weights and data objects in function call # (to allow glmPredict to work correctly later) calltext <- paste0("mg<-glm(formula,family=",family,",offset=", offsetName,",weights=",weightsName,",data=", dataName,",x=TRUE)") - + eval(parse(text=calltext)) - + # update the call object to include the actual formula mg$call$formula <- formula - - return(mg) + + return(mg) } # ASSIGN FUNCTION diff --git a/R/predictDS.R b/R/predictDS.R new file mode 100644 index 00000000..e3311f91 --- /dev/null +++ b/R/predictDS.R @@ -0,0 +1,137 @@ +#' +#' @title predictDS +#' @description Generates server-side predictions using the client-side output from \code{ds.glm}. +#' +#' @details +#' This function uses the components supplied by the client-side function (coefficients, family, formula, +#' and any categorical variables) to generate predictions on the server. To use the base R \code{predict()} function, +#' a "dummy" glm object is created using the same model formula, family, and link function as the original model. +#' The dummy model's coefficients are then replaced with the client-side coefficient estimates. +#' +#' To avoid mismatches between the factors used in the original glm and those in the dummy glm, the categorical +#' variables saved by the client-side function are applied to the newdata. +#' +#' For intercept-only models, the function simply returns a vector of predicted values equal to the model intercept, with the appropriate length +#' based on the row length of \code{newdataname}. +#' +#' +#' @param newdataname A character string specifying the name of the new dataset to be used for predictions. +#' @param traindataname A character string specifying the name of the dataset used for model training. +#' @param type A character string specifying the type of prediction. Options are \code{"response"} or \code{"link"}. +#' @param na.action A character string to specify the action to take if missing values are present. Default is \code{"na.pass"}. +#' +#' +#' @author Zulal Bekerecioglu +#' @return a numeric vector containing the predicted values +#' @export +#' +#' +predictDS <- function(newdataname, traindataname, type = c("response", "link"), + na.action = "na.pass") { + + # Get the objects saved by the client function ds.predict + coefficients<-get("predictDS_coefficients") + model_formula <-get("predictDS_formula") + family <- get("predictDS_family") + categorical_variables <- get("predictDS_categorical_variables") + + + + if(!is.null(traindataname)) + { + traindata<-get(traindataname) + + }else{ + stop("'traindataname' couldn't be found, please provide a valid object name.", call.=FALSE) + } + + + if(!is.null(newdataname)) + { + newdf<-get(newdataname) + + }else{ + stop("'newdataname' couldn't be found, please provide a valid object name.", call.=FALSE) + } + + if (!is.character(type) || !(type %in% c("link","response"))) { + stop("Invalid argument. Must be one of: 'link','response'.", call. = FALSE) + } + + # Convert the family object to it's corresponding function, i.e. poisson.link.log -> poisson(link= "log") + family_dist <- strsplit(family, "\\.")[[1]] + + family_name <- family_dist[1] # "binomial" + link_name <- family_dist[3] # "logit" + + family_func <- get(family_name) # gets the function binomial() + family_obj <- family_func(link = link_name) + + + + # SPECIAL CASE HANDLING: y ~ 1, intercept only ###################### + # A numeric vector will be created wit the mean, with the same length as the row number in newdataname + special_case <- length(attr(stats::terms(stats::formula(model_formula)), "term.labels")) == 0 + + if(special_case){ + intercept <- coefficients + + # If the input is just a numeric vector, get the length + if(all(c("numeric") %in% class(newdf))){ + predictions.f <- rep(intercept, length(newdf)) + } else if(all(c("data.frame") %in% class(newdf))){ + predictions.f <- rep(intercept, nrow(newdf)) # Otherwise use the number of rows + } else { + stop("Invalid input: The object called 'newdataname' must be either a numeric vector or a data.frame.",, call. = FALSE) + } + + if (type == "link") { + predictions.f <- predictions.f + } else if (family_name == "gaussian") { # if type is 'response' + # identity + predictions.f <- predictions.f + } else if (family_name == "poisson") { + # log + predictions.f <- exp(predictions.f) + } else if (family_name == "binomial") { + # logit + predictions.f <- stats::plogis(predictions.f) + } else { + stop("Unsupported family for intercept-only prediction: Family must be either Gaussian, Poisson, or Binomial.", call. = FALSE) + } + + return(predictions.f) + } + # END OF SPECIAL CASE ###################### + + + + # Fix factor levels if any exists + for (var in categorical_variables) { + + # First get all the factor levels from the train data + traindata[[var]] <- factor(traindata[[var]]) + + # Ensure new data variable is a factor with the SAME levels (this is needed if the newdf is missing some categories) + newdf[[var]] <- factor(newdf[[var]], + levels = levels(traindata[[var]])) + } + + # Get the na.action argument + na.action.fun <- match.fun(na.action) + + # Use a dummy glm object with the correct formula and family + dummy_fit <- stats::glm(model_formula, + data = traindata, + family = family_obj, + control = stats::glm.control(maxit = 1)) + + # Change its coefficients with the correct ones + names(coefficients) <- names(dummy_fit$coefficients) + dummy_fit$coefficients <- coefficients + + # New predictions + prediction <- stats::predict(dummy_fit, newdata = newdf, type = type, na.action = na.action.fun) + + return(prediction) +} diff --git a/R/roundDS.R b/R/roundDS.R new file mode 100644 index 00000000..6e0d0c10 --- /dev/null +++ b/R/roundDS.R @@ -0,0 +1,77 @@ +#' +#' @title roundDS +#' @description Generates objects from a server-side object, which can be either a vector or +#' a data-frame column. Supports five operations: +#' 1. (\code{round}) +#' 2. (\code{ceiling}) +#' 3. (\code{floor}) +#' 4. (\code{trunc}) +#' 5. (\code{signif}) +#' where each function in baseR is applied on the server side to the specified object. +#' +#' @details +#' Note: \code{add.column = TRUE} is only valid for data-frame inputs. +#' +#' +#' @param x Character vector specifying the server-side object(s). For data-frame columns, use the format \code{df$column}. +#' @param type Character string specifying the operation: \code{"round"}, \code{"ceiling"}, \code{"floor"}, +#' \code{trunc}, or \code{"signif"}. +#' @param digits Number of digits to be used in arguments \code{"round"} and \code{"signif"}. +#' @param add.column Logical. If \code{FALSE}, the result is created as a new server-side object; +#' if \code{TRUE}, the result is added as a new column in the existing data-frame. Default is \code{FALSE}. +#' @param newobj Character string for the name of the object that will be created on the server. Default is \code{"rounding.result"}. +#' +#' +#' @author Zulal Bekerecioglu +#' @return the created numeric vector or the updated dataframe with the added column +#' @export +#' +#' +roundDS <- function(x, type, digits, add.column, newobj) { + + # If x is NULL, throw and error. + if (is.null(x)) { + stop("Input object couldn't be found, please provide an object for rounding in the correct format. + For vectors, supply an existing object name; for columns, use the format dataframe$column, + where 'dataframe' is the name of the data frame and 'column' is the column name, + and ensure that both exist.", call. = FALSE) + } + + add.column <- as.logical(add.column) + + # Check if object is a column (contains $), if it is then save the dataframe name for later use if necessary + if(grepl("\\$", x)) { + is_column <- TRUE + dataframe_name <- strsplit(x, "\\$")[[1]][1] + column_name <- strsplit(x, "\\$")[[1]][2] + } else { + is_column <- FALSE + } + + + if(!is.null(x)&&!(is_column)) + { + object <- get(x) + + } else if(!is.null(x)&&is_column){ + df <- get(dataframe_name) + object <- df[[column_name]] + } + + result <- switch(type, + round = round(object, digits = digits), + ceiling = ceiling(object), + floor = floor(object), + trunc = trunc(object), + signif = signif(object, digits = digits)) + + if(!(is_column)){ # if the object was a numerical vector, save the result in a new object + return(result) + } else if((is_column)&&!add.column){ # if the object was a column and add.column is FALSE, save the result in a new object + return(result) + } else if((is_column)&&add.column){ # if the object was a column and add.column is TRUE, save the result as a column + df[[newobj]] <- result + return(df) + } + +} diff --git a/R/scaleDS.R b/R/scaleDS.R new file mode 100644 index 00000000..96cbd103 --- /dev/null +++ b/R/scaleDS.R @@ -0,0 +1,61 @@ +#' +#' @title scaleDS +#' @description Generates scaled objects using a server-side object, which can be either a vector or +#' a data-frame column. +#' +#' @details +#' Note: \code{add.column = TRUE} is only valid for data-frame inputs. +#' +#' +#' @param x Character string specifying the server-side vector For data-frame columns, use the format \code{df$column}. +#' @param newobj Character string for the name of the object that will be created on the server. Default is \code{"scaled.data"}. +#' @param add.column Logical. If \code{FALSE}, the result is created as a new server-side object; +#' if \code{TRUE}, the result is added as a new column in the existing data-frame. Default is \code{FALSE}. +#' +#' @author Zulal Bekerecioglu +#' @return the created numeric vector or the updated dataframe with the added column +#' @export +#' +#' +scaleDS <- function(x=NULL, newobj=NULL, add.column=NULL) { + + add.column <- as.logical(add.column) + + error_message <- "Input object couldn't found, please provide the correct format. For vectors, supply an existing object name; + for columns, use df$colname and ensure the dataframe and column exist." + + # If x is NULL, throw and error. + if (is.null(x)) { + stop(error_message, call. = FALSE) + } else { + is_dataframe <- grepl("\\$", x) + + if(is_dataframe) { + # Extract dataframe name + dataframe_name <- strsplit(x, "\\$")[[1]][1] + column_name <- strsplit(x, "\\$")[[1]][2] + + df <-get(dataframe_name) + } else { + + object <-get(x) + } + } + + + if(is_dataframe) { + result <- as.numeric(scale(df[[column_name]])) # scale the column + } else { + result <- as.numeric(scale(object)) # scale the vector + } + + # Return the dataframe with the added column, or the new object. + if(is_dataframe&&add.column) { + df[[newobj]] <- result + return(df) + } else { + return(result) + } + + +} diff --git a/azure-pipelines.yml b/azure-pipelines.yml index b79d39f0..da0d21aa 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -106,7 +106,7 @@ jobs: sudo apt-get install -qq pkg-config -y sudo apt-get install -qq libxml2-dev libcurl4-openssl-dev libssl-dev libgit2-dev libharfbuzz-dev libfribidi-dev libfontconfig1-dev -y - sudo apt-get install -qq libfreetype6-dev libpng-dev libtiff5-dev libjpeg-dev -y + sudo apt-get install -qq libfreetype6-dev libpng-dev libtiff5-dev libjpeg-dev libuv1-dev -y sudo apt-get install -qq r-base -y sudo R -e "install.packages('devtools', dependencies=TRUE)" sudo R -e "install.packages('RANN', dependencies=TRUE)" @@ -257,7 +257,6 @@ jobs: echo 'branch:'$(branchName) >> $(datetime).txt echo 'os:'$(lsb_release -ds) >> $(datetime).txt echo 'R:'$(R --version | head -n 1) >> $(datetime).txt - echo 'opal:'$(opal system --opal localhost:8080 --user administrator --password "datashield_test&" --version) >> $(datetime).txt workingDirectory: $(Pipeline.Workspace)/logs displayName: 'Write versions to file' diff --git a/docs/authors.html b/docs/authors.html index dc54dd5e..3526a873 100644 --- a/docs/authors.html +++ b/docs/authors.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev @@ -106,20 +102,12 @@

Citation

Burton P, Wilson R, Butters O, Ryser-Welch P, Westerberg A, Abarrategui L, Villegas-Diaz R, Avraam D, Marcon Y, Bishop T, Gaye A, Escribà-Montagut X, Wheater S (????). dsBase: 'DataSHIELD' Server Side Base Functions. -<<<<<<< HEAD R package version 6.4.0.9000. -======= -R package version 6.3.5.9000. ->>>>>>> origin/v6.3.5-dev

@Manual{,
   title = {dsBase: 'DataSHIELD' Server Side Base Functions},
   author = {Paul Burton and Rebecca Wilson and Olly Butters and Patricia Ryser-Welch and Alex Westerberg and Leire Abarrategui and Roberto Villegas-Diaz and Demetris Avraam and Yannick Marcon and Tom Bishop and Amadou Gaye and Xavier Escribà-Montagut and Stuart Wheater},
-<<<<<<< HEAD
   note = {R package version 6.4.0.9000},
-=======
-  note = {R package version 6.3.5.9000},
->>>>>>> origin/v6.3.5-dev
 }

Gaye A, Marcon Y, Isaeva J, LaFlamme P, Turner A, Jones E, Minion J, Boyd A, Newby C, Nuotio M, Wilson R, Butters O, Murtagh B, Demir I, Doiron D, Giepmans L, Wallace S, Budin-Ljøsne I, Schmidt C, Boffetta P, Boniol M, Bota M, Carter K, deKlerk N, Dibben C, Francis R, Hiekkalinna T, Hveem K, Kvaløy K, Millar S, Perry I, Peters A, Phillips C, Popham F, Raab G, Reischl E, Sheehan N, Waldenberger M, Perola M, van den Heuvel E, Macleod J, Knoppers B, Stolk R, Fortier I, Harris J, Woffenbuttel B, Murtagh M, Ferretti V, Burton P (2014). “DataSHIELD: taking the analysis to the data, not the data to the analysis.” diff --git a/docs/index.html b/docs/index.html index 41bcede1..1d86586f 100644 --- a/docs/index.html +++ b/docs/index.html @@ -33,11 +33,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/pkgdown.yml b/docs/pkgdown.yml index 6f09758f..9cfbee88 100644 --- a/docs/pkgdown.yml +++ b/docs/pkgdown.yml @@ -2,8 +2,4 @@ pandoc: 3.1.3 pkgdown: 2.2.0 pkgdown_sha: ~ articles: {} -<<<<<<< HEAD -last_built: 2025-11-28T12:54Z -======= -last_built: 2025-11-30T16:44Z ->>>>>>> origin/v6.3.5-dev +last_built: 2026-02-20T10:54Z diff --git a/docs/reference/BooleDS.html b/docs/reference/BooleDS.html index d5f322aa..6c120d76 100644 --- a/docs/reference/BooleDS.html +++ b/docs/reference/BooleDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/absDS.html b/docs/reference/absDS.html index fc172e34..9ffeb870 100644 --- a/docs/reference/absDS.html +++ b/docs/reference/absDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/asCharacterDS.html b/docs/reference/asCharacterDS.html index 40f94a04..24b7fe91 100644 --- a/docs/reference/asCharacterDS.html +++ b/docs/reference/asCharacterDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/asDataMatrixDS.html b/docs/reference/asDataMatrixDS.html index a3a54d0c..eae50c28 100644 --- a/docs/reference/asDataMatrixDS.html +++ b/docs/reference/asDataMatrixDS.html @@ -1,9 +1,6 @@ -<<<<<<< HEAD -asDataFrameDS a serverside assign function called by ds.asDataFrame — asDataMatrixDS • dsBaseasDataMatrixDS a serverside assign function called by ds.asDataMatrix — asDataMatrixDS • dsBase< +head>asDataFrameDS a serverside assign function called by ds.asDataFrame — asDataMatrixDS • dsBasecheckPermissivePrivacyControlLevel — checkPermissivePrivacyControlLevel • dsBasecheckPermissivePrivacyControlLevel — checkPermissivePrivacyControlLevel • dsBase @@ -21,15 +17,7 @@ dsBase -<<<<<<< HEAD -<<<<<<< HEAD 6.4.0-9000 -======= - 6.3.4 ->>>>>>> origin/v6.3.5-dev -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/classDS.html b/docs/reference/classDS.html index 5a0fab58..55390ce4 100644 --- a/docs/reference/classDS.html +++ b/docs/reference/classDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/colnamesDS.html b/docs/reference/colnamesDS.html index d1e770d4..c43ba5cb 100644 --- a/docs/reference/colnamesDS.html +++ b/docs/reference/colnamesDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/completeCasesDS.html b/docs/reference/completeCasesDS.html index af9b8d44..a53e10fa 100644 --- a/docs/reference/completeCasesDS.html +++ b/docs/reference/completeCasesDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/corDS.html b/docs/reference/corDS.html index b4fb7229..07cbf5e9 100644 --- a/docs/reference/corDS.html +++ b/docs/reference/corDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/corTestDS.html b/docs/reference/corTestDS.html index 2ead0203..5b58cb0a 100644 --- a/docs/reference/corTestDS.html +++ b/docs/reference/corTestDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/covDS.html b/docs/reference/covDS.html index bfc552fb..f4901bf1 100644 --- a/docs/reference/covDS.html +++ b/docs/reference/covDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/dataFrameDS.html b/docs/reference/dataFrameDS.html index 50ae4fac..eba9e1a6 100644 --- a/docs/reference/dataFrameDS.html +++ b/docs/reference/dataFrameDS.html @@ -19,11 +19,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/dataFrameFillDS.html b/docs/reference/dataFrameFillDS.html index 3e6098c1..3f9e3a32 100644 --- a/docs/reference/dataFrameFillDS.html +++ b/docs/reference/dataFrameFillDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/dataFrameSortDS.html b/docs/reference/dataFrameSortDS.html index d4395261..01144cd3 100644 --- a/docs/reference/dataFrameSortDS.html +++ b/docs/reference/dataFrameSortDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/dataFrameSubsetDS1.html b/docs/reference/dataFrameSubsetDS1.html index 1210c05c..4585d60c 100644 --- a/docs/reference/dataFrameSubsetDS1.html +++ b/docs/reference/dataFrameSubsetDS1.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/dataFrameSubsetDS2.html b/docs/reference/dataFrameSubsetDS2.html index 5e41ee7e..929ae49c 100644 --- a/docs/reference/dataFrameSubsetDS2.html +++ b/docs/reference/dataFrameSubsetDS2.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/densityGridDS.html b/docs/reference/densityGridDS.html index 823b1bc2..6fba6784 100644 --- a/docs/reference/densityGridDS.html +++ b/docs/reference/densityGridDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/dimDS.html b/docs/reference/dimDS.html index 92e4c87f..b9b9f448 100644 --- a/docs/reference/dimDS.html +++ b/docs/reference/dimDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/dmtC2SDS.html b/docs/reference/dmtC2SDS.html index 0a8f128d..787d6d90 100644 --- a/docs/reference/dmtC2SDS.html +++ b/docs/reference/dmtC2SDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/dsBase-package.html b/docs/reference/dsBase-package.html deleted file mode 100644 index 7270ec16..00000000 --- a/docs/reference/dsBase-package.html +++ /dev/null @@ -1,91 +0,0 @@ - -dsBase: 'DataSHIELD' Server Side Base Functions — dsBase-package • dsBase - - -

-
- - - -
-
- - -
-

Base 'DataSHIELD' functions for the server side. 'DataSHIELD' is a software package which allows you to do non-disclosive federated analysis on sensitive data. 'DataSHIELD' analytic functions have been designed to only share non disclosive summary statistics, with built in automated output checking based on statistical disclosure control. With data sites setting the threshold values for the automated output checks. For more details, see 'citation("dsBase")'.

-
- - -
-

Author

-

Maintainer: Stuart Wheater stuart.wheater@arjuna.com (ORCID)

-

Authors:

- -
- -
- - -
- - - - - - - - diff --git a/docs/reference/elsplineDS.html b/docs/reference/elsplineDS.html index 4b5e028f..58b697b2 100644 --- a/docs/reference/elsplineDS.html +++ b/docs/reference/elsplineDS.html @@ -20,11 +20,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/extract.html b/docs/reference/extract.html index 4d91f651..497cd06a 100644 --- a/docs/reference/extract.html +++ b/docs/reference/extract.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.3 ->>>>>>> origin/v6.3.3-dev diff --git a/docs/reference/extractQuantilesDS1.html b/docs/reference/extractQuantilesDS1.html index 96214bba..39592b32 100644 --- a/docs/reference/extractQuantilesDS1.html +++ b/docs/reference/extractQuantilesDS1.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/extractQuantilesDS2.html b/docs/reference/extractQuantilesDS2.html index 3dc4bcbe..c923aade 100644 --- a/docs/reference/extractQuantilesDS2.html +++ b/docs/reference/extractQuantilesDS2.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/gamlssDS.html b/docs/reference/gamlssDS.html index 87c1c2ec..4154cb98 100644 --- a/docs/reference/gamlssDS.html +++ b/docs/reference/gamlssDS.html @@ -23,11 +23,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/getWGSRDS.html b/docs/reference/getWGSRDS.html index bc8addbf..f508fd7e 100644 --- a/docs/reference/getWGSRDS.html +++ b/docs/reference/getWGSRDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/glmDS1.html b/docs/reference/glmDS1.html index b679c6e0..fc6eaad7 100644 --- a/docs/reference/glmDS1.html +++ b/docs/reference/glmDS1.html @@ -1,9 +1,5 @@ -<<<<<<< HEAD glmDS1 called by ds.glm — glmDS1 • dsBaseglmDS1 called by ds.glm — glmDS1 • dsBase @@ -21,15 +17,7 @@ dsBase -<<<<<<< HEAD -<<<<<<< HEAD 6.4.0-9000 -======= - 6.3.4 ->>>>>>> origin/v6.3.5-dev -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/glmDS2.html b/docs/reference/glmDS2.html index 6ebc1453..8ebfd011 100644 --- a/docs/reference/glmDS2.html +++ b/docs/reference/glmDS2.html @@ -1,9 +1,5 @@ -<<<<<<< HEAD glmDS2 called by ds.glm — glmDS2 • dsBaseglmDS2 called by ds.glm — glmDS2 • dsBase @@ -21,15 +17,7 @@ dsBase -<<<<<<< HEAD -<<<<<<< HEAD 6.4.0-9000 -======= - 6.3.4 ->>>>>>> origin/v6.3.5-dev -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/glmPredictDS.ag.html b/docs/reference/glmPredictDS.ag.html index a3fa4124..0b109c1a 100644 --- a/docs/reference/glmPredictDS.ag.html +++ b/docs/reference/glmPredictDS.ag.html @@ -19,11 +19,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/glmPredictDS.as.html b/docs/reference/glmPredictDS.as.html index 2ba9f101..002579d5 100644 --- a/docs/reference/glmPredictDS.as.html +++ b/docs/reference/glmPredictDS.as.html @@ -20,11 +20,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/glmSLMADS.assign.html b/docs/reference/glmSLMADS.assign.html index 6eb9263c..2b74522b 100644 --- a/docs/reference/glmSLMADS.assign.html +++ b/docs/reference/glmSLMADS.assign.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/glmSLMADS1.html b/docs/reference/glmSLMADS1.html index 5f31583e..dc0ff1c1 100644 --- a/docs/reference/glmSLMADS1.html +++ b/docs/reference/glmSLMADS1.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/glmSLMADS2.html b/docs/reference/glmSLMADS2.html index 517c0e88..da588dbc 100644 --- a/docs/reference/glmSLMADS2.html +++ b/docs/reference/glmSLMADS2.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/glmSummaryDS.ag.html b/docs/reference/glmSummaryDS.ag.html index 23900009..62722c50 100644 --- a/docs/reference/glmSummaryDS.ag.html +++ b/docs/reference/glmSummaryDS.ag.html @@ -19,11 +19,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/glmSummaryDS.as.html b/docs/reference/glmSummaryDS.as.html index 560f1c9e..a5b7e116 100644 --- a/docs/reference/glmSummaryDS.as.html +++ b/docs/reference/glmSummaryDS.as.html @@ -20,11 +20,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/glmerSLMADS.assign.html b/docs/reference/glmerSLMADS.assign.html index 1bc06981..27b81174 100644 --- a/docs/reference/glmerSLMADS.assign.html +++ b/docs/reference/glmerSLMADS.assign.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/glmerSLMADS2.html b/docs/reference/glmerSLMADS2.html index 29b69c56..c1ae0c27 100644 --- a/docs/reference/glmerSLMADS2.html +++ b/docs/reference/glmerSLMADS2.html @@ -19,11 +19,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/heatmapPlotDS.html b/docs/reference/heatmapPlotDS.html index 6d0d668b..269a92a2 100644 --- a/docs/reference/heatmapPlotDS.html +++ b/docs/reference/heatmapPlotDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/hetcorDS.html b/docs/reference/hetcorDS.html index 4eaa70ca..80051a85 100644 --- a/docs/reference/hetcorDS.html +++ b/docs/reference/hetcorDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/histogramDS1.html b/docs/reference/histogramDS1.html index e4a874f9..3d71cf6f 100644 --- a/docs/reference/histogramDS1.html +++ b/docs/reference/histogramDS1.html @@ -23,11 +23,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/histogramDS2.html b/docs/reference/histogramDS2.html index 3aa9fc39..679967c7 100644 --- a/docs/reference/histogramDS2.html +++ b/docs/reference/histogramDS2.html @@ -21,11 +21,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/igb_standardsDS.html b/docs/reference/igb_standardsDS.html index 25725319..7cafd7ed 100644 --- a/docs/reference/igb_standardsDS.html +++ b/docs/reference/igb_standardsDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/index.html b/docs/reference/index.html index b1f06f78..efa3d316 100644 --- a/docs/reference/index.html +++ b/docs/reference/index.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/isNaDS.html b/docs/reference/isNaDS.html index 1a66df1a..5c9fcca6 100644 --- a/docs/reference/isNaDS.html +++ b/docs/reference/isNaDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/isValidDS.html b/docs/reference/isValidDS.html index c02ede88..2c695d33 100644 --- a/docs/reference/isValidDS.html +++ b/docs/reference/isValidDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/kurtosisDS1.html b/docs/reference/kurtosisDS1.html index 04665d0e..6867e232 100644 --- a/docs/reference/kurtosisDS1.html +++ b/docs/reference/kurtosisDS1.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/kurtosisDS2.html b/docs/reference/kurtosisDS2.html index 69e52f40..29d4c56d 100644 --- a/docs/reference/kurtosisDS2.html +++ b/docs/reference/kurtosisDS2.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/lengthDS.html b/docs/reference/lengthDS.html index 6f5e9d66..b0cc498d 100644 --- a/docs/reference/lengthDS.html +++ b/docs/reference/lengthDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/levelsDS.html b/docs/reference/levelsDS.html index bdc7da95..3bda828c 100644 --- a/docs/reference/levelsDS.html +++ b/docs/reference/levelsDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/lexisDS1.html b/docs/reference/lexisDS1.html index 8fec6e1c..7117f909 100644 --- a/docs/reference/lexisDS1.html +++ b/docs/reference/lexisDS1.html @@ -1,9 +1,5 @@ -<<<<<<< HEAD lexisDS1 — lexisDS1 • dsBaselexisDS1 — lexisDS1 • dsBase @@ -21,15 +17,7 @@ dsBase -<<<<<<< HEAD -<<<<<<< HEAD 6.4.0-9000 -======= - 6.3.4 ->>>>>>> origin/v6.3.5-dev -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/lexisDS2.html b/docs/reference/lexisDS2.html index 8b4802d9..16d5547b 100644 --- a/docs/reference/lexisDS2.html +++ b/docs/reference/lexisDS2.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/lexisDS3.html b/docs/reference/lexisDS3.html index e90963c5..b5b5c79d 100644 --- a/docs/reference/lexisDS3.html +++ b/docs/reference/lexisDS3.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/listDS.html b/docs/reference/listDS.html index aab15eb1..d1e47dd2 100644 --- a/docs/reference/listDS.html +++ b/docs/reference/listDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/listDisclosureSettingsDS.html b/docs/reference/listDisclosureSettingsDS.html index 6f051378..231c3372 100644 --- a/docs/reference/listDisclosureSettingsDS.html +++ b/docs/reference/listDisclosureSettingsDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/lmerSLMADS.assign.html b/docs/reference/lmerSLMADS.assign.html index a8c903db..cf28e3e1 100644 --- a/docs/reference/lmerSLMADS.assign.html +++ b/docs/reference/lmerSLMADS.assign.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/lmerSLMADS2.html b/docs/reference/lmerSLMADS2.html index f2201bd4..9a324996 100644 --- a/docs/reference/lmerSLMADS2.html +++ b/docs/reference/lmerSLMADS2.html @@ -19,11 +19,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/lsDS.html b/docs/reference/lsDS.html index 0747857d..faed01e5 100644 --- a/docs/reference/lsDS.html +++ b/docs/reference/lsDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/lsplineDS.html b/docs/reference/lsplineDS.html index 03a511ea..1f54ed5a 100644 --- a/docs/reference/lsplineDS.html +++ b/docs/reference/lsplineDS.html @@ -20,11 +20,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/matrixDS.html b/docs/reference/matrixDS.html index 39e1cea8..5dbae7c2 100644 --- a/docs/reference/matrixDS.html +++ b/docs/reference/matrixDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/matrixDetDS1.html b/docs/reference/matrixDetDS1.html index e1c28b77..4528346e 100644 --- a/docs/reference/matrixDetDS1.html +++ b/docs/reference/matrixDetDS1.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/matrixDetDS2.html b/docs/reference/matrixDetDS2.html index 8c0be8db..728ef556 100644 --- a/docs/reference/matrixDetDS2.html +++ b/docs/reference/matrixDetDS2.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/matrixDiagDS.html b/docs/reference/matrixDiagDS.html index ffe9cfa1..53382d75 100644 --- a/docs/reference/matrixDiagDS.html +++ b/docs/reference/matrixDiagDS.html @@ -19,11 +19,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/matrixDimnamesDS.html b/docs/reference/matrixDimnamesDS.html index 49ade78e..276f377f 100644 --- a/docs/reference/matrixDimnamesDS.html +++ b/docs/reference/matrixDimnamesDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/matrixInvertDS.html b/docs/reference/matrixInvertDS.html index f555d483..79d56475 100644 --- a/docs/reference/matrixInvertDS.html +++ b/docs/reference/matrixInvertDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/matrixMultDS.html b/docs/reference/matrixMultDS.html index 2dc680b3..854dd216 100644 --- a/docs/reference/matrixMultDS.html +++ b/docs/reference/matrixMultDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/matrixTransposeDS.html b/docs/reference/matrixTransposeDS.html index 7f1abc24..d9f0cbfb 100644 --- a/docs/reference/matrixTransposeDS.html +++ b/docs/reference/matrixTransposeDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/mdPatternDS.html b/docs/reference/mdPatternDS.html index d5469e97..f9187ff5 100644 --- a/docs/reference/mdPatternDS.html +++ b/docs/reference/mdPatternDS.html @@ -19,11 +19,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/meanDS.html b/docs/reference/meanDS.html index c0123dc2..3a75d1c6 100644 --- a/docs/reference/meanDS.html +++ b/docs/reference/meanDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/meanSdGpDS.html b/docs/reference/meanSdGpDS.html index 076528d1..9fa9ee0e 100644 --- a/docs/reference/meanSdGpDS.html +++ b/docs/reference/meanSdGpDS.html @@ -1,9 +1,5 @@ -<<<<<<< HEAD MeanSdGpDS — meanSdGpDS • dsBaseMeanSdGpDS — meanSdGpDS • dsBase @@ -21,15 +17,7 @@ dsBase -<<<<<<< HEAD -<<<<<<< HEAD 6.4.0-9000 -======= - 6.3.4 ->>>>>>> origin/v6.3.5-dev -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/mergeDS.html b/docs/reference/mergeDS.html index 55b7aa45..b7ddf47b 100644 --- a/docs/reference/mergeDS.html +++ b/docs/reference/mergeDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/messageDS.html b/docs/reference/messageDS.html index 26e2dc2d..7f4a190e 100644 --- a/docs/reference/messageDS.html +++ b/docs/reference/messageDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/metadataDS.html b/docs/reference/metadataDS.html index ac629de7..79913002 100644 --- a/docs/reference/metadataDS.html +++ b/docs/reference/metadataDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/miceDS.html b/docs/reference/miceDS.html index e0244b84..fff5eafb 100644 --- a/docs/reference/miceDS.html +++ b/docs/reference/miceDS.html @@ -23,11 +23,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/minMaxRandDS.html b/docs/reference/minMaxRandDS.html index ca3d03d1..3e42e684 100644 --- a/docs/reference/minMaxRandDS.html +++ b/docs/reference/minMaxRandDS.html @@ -19,11 +19,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/namesDS.html b/docs/reference/namesDS.html index 6441b400..3e39c9ae 100644 --- a/docs/reference/namesDS.html +++ b/docs/reference/namesDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/nsDS.html b/docs/reference/nsDS.html index 39bfe0c6..2dec2458 100644 --- a/docs/reference/nsDS.html +++ b/docs/reference/nsDS.html @@ -19,11 +19,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/numNaDS.html b/docs/reference/numNaDS.html index ad021f9a..9cc7a6c2 100644 --- a/docs/reference/numNaDS.html +++ b/docs/reference/numNaDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/qlsplineDS.html b/docs/reference/qlsplineDS.html index 56969fb1..7150fcef 100644 --- a/docs/reference/qlsplineDS.html +++ b/docs/reference/qlsplineDS.html @@ -20,11 +20,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/quantileMeanDS.html b/docs/reference/quantileMeanDS.html index 0cdd525a..a227b129 100644 --- a/docs/reference/quantileMeanDS.html +++ b/docs/reference/quantileMeanDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/rBinomDS.html b/docs/reference/rBinomDS.html index e29f7be7..385d3a2c 100644 --- a/docs/reference/rBinomDS.html +++ b/docs/reference/rBinomDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/rNormDS.html b/docs/reference/rNormDS.html index b757e36e..84f8fb67 100644 --- a/docs/reference/rNormDS.html +++ b/docs/reference/rNormDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/rPoisDS.html b/docs/reference/rPoisDS.html index d8ecfbcb..f644a9e7 100644 --- a/docs/reference/rPoisDS.html +++ b/docs/reference/rPoisDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/rUnifDS.html b/docs/reference/rUnifDS.html index 1811a44c..2b98c15a 100644 --- a/docs/reference/rUnifDS.html +++ b/docs/reference/rUnifDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/rangeDS.html b/docs/reference/rangeDS.html index 4231406b..87ac7d3f 100644 --- a/docs/reference/rangeDS.html +++ b/docs/reference/rangeDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/ranksSecureDS1.html b/docs/reference/ranksSecureDS1.html index 9f04e270..b858383b 100644 --- a/docs/reference/ranksSecureDS1.html +++ b/docs/reference/ranksSecureDS1.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/ranksSecureDS2.html b/docs/reference/ranksSecureDS2.html index 96e92343..c0d88cc7 100644 --- a/docs/reference/ranksSecureDS2.html +++ b/docs/reference/ranksSecureDS2.html @@ -24,11 +24,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/ranksSecureDS3.html b/docs/reference/ranksSecureDS3.html index f1d08714..acbb0e4a 100644 --- a/docs/reference/ranksSecureDS3.html +++ b/docs/reference/ranksSecureDS3.html @@ -19,11 +19,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/ranksSecureDS4.html b/docs/reference/ranksSecureDS4.html index eddcaf6f..e5acc10b 100644 --- a/docs/reference/ranksSecureDS4.html +++ b/docs/reference/ranksSecureDS4.html @@ -20,11 +20,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/ranksSecureDS5.html b/docs/reference/ranksSecureDS5.html index f51096cb..44a9158f 100644 --- a/docs/reference/ranksSecureDS5.html +++ b/docs/reference/ranksSecureDS5.html @@ -20,11 +20,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/rbindDS.html b/docs/reference/rbindDS.html index fc36b471..64939f08 100644 --- a/docs/reference/rbindDS.html +++ b/docs/reference/rbindDS.html @@ -19,11 +19,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/reShapeDS.html b/docs/reference/reShapeDS.html index 2e5315ee..bb1201e2 100644 --- a/docs/reference/reShapeDS.html +++ b/docs/reference/reShapeDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/recodeLevelsDS.html b/docs/reference/recodeLevelsDS.html index 7f0e5c81..c34a5520 100644 --- a/docs/reference/recodeLevelsDS.html +++ b/docs/reference/recodeLevelsDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/recodeValuesDS.html b/docs/reference/recodeValuesDS.html index e744d6bf..ddf2d26d 100644 --- a/docs/reference/recodeValuesDS.html +++ b/docs/reference/recodeValuesDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/repDS.html b/docs/reference/repDS.html index 9cc5876d..503c7fb8 100644 --- a/docs/reference/repDS.html +++ b/docs/reference/repDS.html @@ -21,11 +21,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/replaceNaDS.html b/docs/reference/replaceNaDS.html index 2029f0a4..cf56b323 100644 --- a/docs/reference/replaceNaDS.html +++ b/docs/reference/replaceNaDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/rmDS.html b/docs/reference/rmDS.html index f55083b3..c1cc4c39 100644 --- a/docs/reference/rmDS.html +++ b/docs/reference/rmDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/rowColCalcDS.html b/docs/reference/rowColCalcDS.html index cdde7901..5a40ca49 100644 --- a/docs/reference/rowColCalcDS.html +++ b/docs/reference/rowColCalcDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/sampleDS.html b/docs/reference/sampleDS.html index 39f03b28..7a482911 100644 --- a/docs/reference/sampleDS.html +++ b/docs/reference/sampleDS.html @@ -19,11 +19,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/scatterPlotDS.html b/docs/reference/scatterPlotDS.html index 2bd086c0..858452d4 100644 --- a/docs/reference/scatterPlotDS.html +++ b/docs/reference/scatterPlotDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/seqDS.html b/docs/reference/seqDS.html index 89f85c1b..ca737326 100644 --- a/docs/reference/seqDS.html +++ b/docs/reference/seqDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/setFilterDS.html b/docs/reference/setFilterDS.html index 252a4d6f..1b071236 100644 --- a/docs/reference/setFilterDS.html +++ b/docs/reference/setFilterDS.html @@ -19,11 +19,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.3 ->>>>>>> origin/v6.3.3-dev diff --git a/docs/reference/setSeedDS.html b/docs/reference/setSeedDS.html index 846a68dc..f7fbf96f 100644 --- a/docs/reference/setSeedDS.html +++ b/docs/reference/setSeedDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/skewnessDS1.html b/docs/reference/skewnessDS1.html index 95722055..d75060b2 100644 --- a/docs/reference/skewnessDS1.html +++ b/docs/reference/skewnessDS1.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/skewnessDS2.html b/docs/reference/skewnessDS2.html index 5f555c1c..3a1f7b67 100644 --- a/docs/reference/skewnessDS2.html +++ b/docs/reference/skewnessDS2.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/sqrtDS.html b/docs/reference/sqrtDS.html index 36f7eae9..575ce4f7 100644 --- a/docs/reference/sqrtDS.html +++ b/docs/reference/sqrtDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/subsetByClassDS.html b/docs/reference/subsetByClassDS.html index 290fa538..c9f7a973 100644 --- a/docs/reference/subsetByClassDS.html +++ b/docs/reference/subsetByClassDS.html @@ -19,11 +19,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/subsetDS.html b/docs/reference/subsetDS.html index 151c0ab1..6ebe3cc2 100644 --- a/docs/reference/subsetDS.html +++ b/docs/reference/subsetDS.html @@ -19,11 +19,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/table1DDS.html b/docs/reference/table1DDS.html index 48e865ec..ff21fd5d 100644 --- a/docs/reference/table1DDS.html +++ b/docs/reference/table1DDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/table2DDS.html b/docs/reference/table2DDS.html index 1c375976..b3009107 100644 --- a/docs/reference/table2DDS.html +++ b/docs/reference/table2DDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/tableDS.assign.html b/docs/reference/tableDS.assign.html index d17715a4..7df8b1d3 100644 --- a/docs/reference/tableDS.assign.html +++ b/docs/reference/tableDS.assign.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/tableDS.html b/docs/reference/tableDS.html index 3d0ed49f..d0fb2550 100644 --- a/docs/reference/tableDS.html +++ b/docs/reference/tableDS.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/tableDS2.html b/docs/reference/tableDS2.html index 6b5e0ef7..713d4f3a 100644 --- a/docs/reference/tableDS2.html +++ b/docs/reference/tableDS2.html @@ -18,11 +18,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/tapplyDS.assign.html b/docs/reference/tapplyDS.assign.html index 6050a06a..cdb99f48 100644 --- a/docs/reference/tapplyDS.assign.html +++ b/docs/reference/tapplyDS.assign.html @@ -19,11 +19,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/tapplyDS.html b/docs/reference/tapplyDS.html index 2097b7b2..c9a9b945 100644 --- a/docs/reference/tapplyDS.html +++ b/docs/reference/tapplyDS.html @@ -19,11 +19,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/testObjExistsDS.html b/docs/reference/testObjExistsDS.html index 7bed49f9..ed693254 100644 --- a/docs/reference/testObjExistsDS.html +++ b/docs/reference/testObjExistsDS.html @@ -1,9 +1,5 @@ -<<<<<<< HEAD testObjExistsDS — testObjExistsDS • dsBasetestObjExistsDS — testObjExistsDS • dsBase @@ -21,15 +17,7 @@ dsBase -<<<<<<< HEAD -<<<<<<< HEAD 6.4.0-9000 -======= - 6.3.4 ->>>>>>> origin/v6.3.5-dev -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/unListDS.html b/docs/reference/unListDS.html index 330d2969..f613a8d0 100644 --- a/docs/reference/unListDS.html +++ b/docs/reference/unListDS.html @@ -19,11 +19,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/uniqueDS.html b/docs/reference/uniqueDS.html index 090658a6..65899058 100644 --- a/docs/reference/uniqueDS.html +++ b/docs/reference/uniqueDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/varDS.html b/docs/reference/varDS.html index ab4deeb4..86e0bac6 100644 --- a/docs/reference/varDS.html +++ b/docs/reference/varDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/docs/reference/vectorDS.html b/docs/reference/vectorDS.html index 49ca4a00..6fbba822 100644 --- a/docs/reference/vectorDS.html +++ b/docs/reference/vectorDS.html @@ -17,11 +17,7 @@ dsBase -<<<<<<< HEAD 6.4.0.9000 -======= - 6.3.5.9000 ->>>>>>> origin/v6.3.5-dev diff --git a/man/dateDS.Rd b/man/dateDS.Rd new file mode 100644 index 00000000..91546ab7 --- /dev/null +++ b/man/dateDS.Rd @@ -0,0 +1,39 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/dateDS.R +\name{dateDS} +\alias{dateDS} +\title{dateDS} +\usage{ +dateDS(x = NULL, type = NULL, newobj = NULL, unit = NULL, add.column = NULL) +} +\arguments{ +\item{x}{Character vector specifying the server-side object(s). For data-frame columns, use the format \code{df$column}.} + +\item{type}{Character string specifying the operation: \code{"extractdate"}, \code{"makedate"}, or \code{"timebetween"}.} + +\item{newobj}{Character string for the name of the object that will be created on the server. Default is \code{"date.result"}.} + +\item{unit}{Character string specifying the unit for \code{extractdate} or \code{timebetween}: \code{"days"}, \code{"months"}, or \code{"years"}.} + +\item{add.column}{Logical. If \code{FALSE}, the result is created as a new server-side object; +if \code{TRUE}, the result is added as a new column in the existing data-frame. Default is \code{FALSE}.} +} +\value{ +the created numeric vector or date object, or the updated dataframe with the added column +} +\description{ +Takes an object that is either a data-frame column or a vector, and can do extraction of +components of full date (\code{extractdate}), can combine date components to a full date (\code{makedate}), +or can calculate the time between two dates (\code{timebetween}). +} +\details{ +If the input is a data-frame column, it must be provided in the \code{x} argument as data-frame$column. +Inputs for \code{extractdate} and \code{timebetween} must be date objects. +For \code{makedate}, three numeric vectors (year, month, day) must be provided in the correct order. +The \code{add.column} argument determines whether the result is added as a new column in the existing +data-frame (\code{TRUE}), or created as a new server-side object (\code{FALSE}). +Note: \code{add.column = TRUE} is only valid for data-frame inputs. +} +\author{ +Zulal Bekerecioglu +} diff --git a/man/dsBase-package.Rd b/man/dsBase-package.Rd index 725c4131..be7f5744 100644 --- a/man/dsBase-package.Rd +++ b/man/dsBase-package.Rd @@ -13,6 +13,7 @@ Base 'DataSHIELD' functions for the server side. 'DataSHIELD' is a software pack Authors: \itemize{ + \item Stuart Wheater \email{stuart.wheater@arjuna.com} (\href{https://orcid.org/0009-0003-2419-1964}{ORCID}) \item Paul Burton (\href{https://orcid.org/0000-0001-5799-9634}{ORCID}) \item Rebecca Wilson (\href{https://orcid.org/0000-0003-2294-593X}{ORCID}) \item Olly Butters (\href{https://orcid.org/0000-0003-0354-8461}{ORCID}) diff --git a/man/predictDS.Rd b/man/predictDS.Rd new file mode 100644 index 00000000..d795b422 --- /dev/null +++ b/man/predictDS.Rd @@ -0,0 +1,43 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/predictDS.R +\name{predictDS} +\alias{predictDS} +\title{predictDS} +\usage{ +predictDS( + newdataname, + traindataname, + type = c("response", "link"), + na.action = "na.pass" +) +} +\arguments{ +\item{newdataname}{A character string specifying the name of the new dataset to be used for predictions.} + +\item{traindataname}{A character string specifying the name of the dataset used for model training.} + +\item{type}{A character string specifying the type of prediction. Options are \code{"response"} or \code{"link"}.} + +\item{na.action}{A character string to specify the action to take if missing values are present. Default is \code{"na.pass"}.} +} +\value{ +a numeric vector containing the predicted values +} +\description{ +Generates server-side predictions using the client-side output from \code{ds.glm}. +} +\details{ +This function uses the components supplied by the client-side function (coefficients, family, formula, +and any categorical variables) to generate predictions on the server. To use the base R \code{predict()} function, +a "dummy" glm object is created using the same model formula, family, and link function as the original model. +The dummy model's coefficients are then replaced with the client-side coefficient estimates. + +To avoid mismatches between the factors used in the original glm and those in the dummy glm, the categorical +variables saved by the client-side function are applied to the newdata. + +For intercept-only models, the function simply returns a vector of predicted values equal to the model intercept, with the appropriate length +based on the row length of \code{newdataname}. +} +\author{ +Zulal Bekerecioglu +} diff --git a/man/roundDS.Rd b/man/roundDS.Rd new file mode 100644 index 00000000..00d0e106 --- /dev/null +++ b/man/roundDS.Rd @@ -0,0 +1,40 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/roundDS.R +\name{roundDS} +\alias{roundDS} +\title{roundDS} +\usage{ +roundDS(x, type, digits, add.column, newobj) +} +\arguments{ +\item{x}{Character vector specifying the server-side object(s). For data-frame columns, use the format \code{df$column}.} + +\item{type}{Character string specifying the operation: \code{"round"}, \code{"ceiling"}, \code{"floor"}, +\code{trunc}, or \code{"signif"}.} + +\item{digits}{Number of digits to be used in arguments \code{"round"} and \code{"signif"}.} + +\item{add.column}{Logical. If \code{FALSE}, the result is created as a new server-side object; +if \code{TRUE}, the result is added as a new column in the existing data-frame. Default is \code{FALSE}.} + +\item{newobj}{Character string for the name of the object that will be created on the server. Default is \code{"rounding.result"}.} +} +\value{ +the created numeric vector or the updated dataframe with the added column +} +\description{ +Generates objects from a server-side object, which can be either a vector or +a data-frame column. Supports five operations: +1. (\code{round}) +2. (\code{ceiling}) +3. (\code{floor}) +4. (\code{trunc}) +5. (\code{signif}) +where each function in baseR is applied on the server side to the specified object. +} +\details{ +Note: \code{add.column = TRUE} is only valid for data-frame inputs. +} +\author{ +Zulal Bekerecioglu +} diff --git a/man/scaleDS.Rd b/man/scaleDS.Rd new file mode 100644 index 00000000..a7ab4e25 --- /dev/null +++ b/man/scaleDS.Rd @@ -0,0 +1,29 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/scaleDS.R +\name{scaleDS} +\alias{scaleDS} +\title{scaleDS} +\usage{ +scaleDS(x = NULL, newobj = NULL, add.column = NULL) +} +\arguments{ +\item{x}{Character string specifying the server-side vector For data-frame columns, use the format \code{df$column}.} + +\item{newobj}{Character string for the name of the object that will be created on the server. Default is \code{"scaled.data"}.} + +\item{add.column}{Logical. If \code{FALSE}, the result is created as a new server-side object; +if \code{TRUE}, the result is added as a new column in the existing data-frame. Default is \code{FALSE}.} +} +\value{ +the created numeric vector or the updated dataframe with the added column +} +\description{ +Generates scaled objects using a server-side object, which can be either a vector or +a data-frame column. +} +\details{ +Note: \code{add.column = TRUE} is only valid for data-frame inputs. +} +\author{ +Zulal Bekerecioglu +} diff --git a/tests/testthat/perf_tests/perf_rate.R b/tests/testthat/perf_tests/perf_rate.R index 90905e12..b8930889 100644 --- a/tests/testthat/perf_tests/perf_rate.R +++ b/tests/testthat/perf_tests/perf_rate.R @@ -45,6 +45,11 @@ perf.reference.save <- function(perf.ref.name, rate, tolerance.lower, tolerance. .perf.reference <<- .perf.reference } +# Obtain performance test duration from PERF_DURATION_SEC environment variable, otherwise default.duration argument, otherwise "30". +perf.testduration <- function(default.duration = 30) { + base::as.integer(base::Sys.getenv("PERF_DURATION_SEC", unset = base::as.character(default.duration))) +} + perf.reference.rate <- function(perf.ref.name) { if (is.null(.perf.reference)) .load.pref() diff --git a/tests/testthat/test-perf-meanDS.R b/tests/testthat/test-perf-meanDS.R index 794e61b2..e16d0565 100644 --- a/tests/testthat/test-perf-meanDS.R +++ b/tests/testthat/test-perf-meanDS.R @@ -1,5 +1,5 @@ #------------------------------------------------------------------------------- -# Copyright (c) 2024 Arjuna Technologies, Newcastle upon Tyne. All rights reserved. +# Copyright (c) 2024-2026 Arjuna Technologies, Newcastle upon Tyne. All rights reserved. # # This program and the accompanying materials # are made available under the terms of the GNU Public License v3.0. @@ -30,7 +30,7 @@ test_that("numeric meanDS - performance", { input <- c(0.0, 1.0, 2.0, 3.0, 4.0) - .durationSec <- 30 # seconds + .durationSec <- perf.testduration(30) .count <- 0 .start.time <- Sys.time() .current.time <- .start.time @@ -65,7 +65,7 @@ test_that("numeric meanDS, with NA - performance", { input <- c(0.0, NA, 2.0, NA, 4.0) - .durationSec <- 30 # seconds + .durationSec <- perf.testduration(30) .count <- 0 .start.time <- Sys.time() .current.time <- .start.time diff --git a/tests/testthat/test-perf-varDS.R b/tests/testthat/test-perf-varDS.R index d468c5da..5d9cec4a 100644 --- a/tests/testthat/test-perf-varDS.R +++ b/tests/testthat/test-perf-varDS.R @@ -30,7 +30,7 @@ test_that("numeric varDS - performance", { input <- c(0.0, 1.0, 2.0, 3.0, 4.0) - .durationSec <- 30 # seconds + .durationSec <- perf.testduration(30) .count <- 0 .start.time <- Sys.time() .current.time <- .start.time @@ -65,7 +65,7 @@ test_that("numeric varDS, with NA - performance", { input <- c(0.0, NA, 2.0, NA, 4.0) - .durationSec <- 30 # seconds + .durationSec <- perf.testduration(30) .count <- 0 .start.time <- Sys.time() .current.time <- .start.time