diff --git a/DESCRIPTION b/DESCRIPTION
index 1ced4dd6f..ad8e28a6d 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,11 +1,11 @@
Package: dsBaseClient
Title: 'DataSHIELD' Client Side Base Functions
-Version: 7.0.0-9000
+Version: 7.0.0.9000
Description: Base 'DataSHIELD' functions for the client 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("dsBaseClient")'.
+ the automated output checks. For more details, see citation("dsBaseClient").
Authors@R: c(person(given = "Paul",
family = "Burton",
role = c("aut"),
diff --git a/NAMESPACE b/NAMESPACE
index 406745737..a41b8f0af 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -1,6 +1,5 @@
# Generated by roxygen2: do not edit by hand
-export(computeWeightedMeans)
export(ds.Boole)
export(ds.abs)
export(ds.asCharacter)
diff --git a/R/computeWeightedMeans.R b/R/computeWeightedMeans.R
index 0f04fc915..1284ffc08 100644
--- a/R/computeWeightedMeans.R
+++ b/R/computeWeightedMeans.R
@@ -9,9 +9,11 @@
#' @param variables character name of the variable(s) to focus on. The variables must be in the data.table
#' @param weight character name of the data.table column that contains a weight.
#' @param by character vector of the columns to group by
+#' @return Returns a data table object with computed weighted means.
+#'
#' @import data.table
#' @importFrom stats as.formula na.omit ts weighted.mean
-#' @export
+#' @keywords internal
computeWeightedMeans <- function(data_table, variables, weight, by) {
if (is.null(weight)) {
diff --git a/R/ds.cbind.R b/R/ds.cbind.R
index d943e0175..e21cb961c 100644
--- a/R/ds.cbind.R
+++ b/R/ds.cbind.R
@@ -157,7 +157,7 @@ ds.cbind <- function(x=NULL, DataSHIELD.checks=FALSE, force.colnames=NULL, newob
}
colNames <- unlist(colNames)
if(anyDuplicated(colNames) != 0){
- cat("\n Warning: Some column names in study", j, "are duplicated and a suffix '.k' will be added to the kth replicate \n")
+ message("\n Warning: Some column names in study", j, "are duplicated and a suffix '.k' will be added to the kth replicate \n")
}
}
}
@@ -198,7 +198,7 @@ ds.cbind <- function(x=NULL, DataSHIELD.checks=FALSE, force.colnames=NULL, newob
next.class <- DSI::datashield.aggregate(datasources[std], calltext1)
class.vector <- c(class.vector, next.class[[1]])
if (notify.of.progress){
- cat("\n",j," of ", length(x), " elements to combine in step 1 of 2 in study ", std, "\n")
+ message("\n",j," of ", length(x), " elements to combine in step 1 of 2 in study ", std, "\n")
}
}
for(j in 1:length(x)){
@@ -206,14 +206,14 @@ ds.cbind <- function(x=NULL, DataSHIELD.checks=FALSE, force.colnames=NULL, newob
if(class.vector[j]!="data.frame" && class.vector[j]!="matrix"){
colname.vector <- c(colname.vector, test.df)
if (notify.of.progress){
- cat("\n",j," of ", length(x), " elements to combine in step 2 of 2 in study ", std, "\n")
+ message("\n",j," of ", length(x), " elements to combine in step 2 of 2 in study ", std, "\n")
}
}else{
calltext2 <- call('colnamesDS', test.df)
df.names <- DSI::datashield.aggregate(datasources[std], calltext2)
colname.vector <- c(colname.vector, df.names[[1]])
if (notify.of.progress){
- cat("\n", j," of ", length(x), " elements to combine in step 2 of 2 in study ", std, "\n")
+ message("\n", j," of ", length(x), " elements to combine in step 2 of 2 in study ", std, "\n")
}
}
}
@@ -221,7 +221,7 @@ ds.cbind <- function(x=NULL, DataSHIELD.checks=FALSE, force.colnames=NULL, newob
}
if (notify.of.progress){
- cat("\nBoth steps in all studies completed\n")
+ message("\nBoth steps in all studies completed\n")
}
# prepare name vectors for transmission
diff --git a/R/ds.contourPlot.R b/R/ds.contourPlot.R
index 4e195e48b..f1fbb3bd8 100644
--- a/R/ds.contourPlot.R
+++ b/R/ds.contourPlot.R
@@ -120,6 +120,10 @@ ds.contourPlot <- function(x=NULL, y=NULL, type='combine', show='all', numints=2
stop("y=NULL. Please provide the names of two numeric vectors!", call.=FALSE)
}
+ # Save par and setup reseting of par values
+ old_par <- graphics::par(no.readonly = TRUE)
+ on.exit(graphics::par(old_par), add = TRUE)
+
# check if the input objects are defined in all the studies
isDefined(datasources, x)
isDefined(datasources, y)
diff --git a/R/ds.dataFrame.R b/R/ds.dataFrame.R
index 5837747c6..eeddcdd90 100644
--- a/R/ds.dataFrame.R
+++ b/R/ds.dataFrame.R
@@ -137,7 +137,7 @@ ds.dataFrame <- function(x=NULL, row.names=NULL, check.rows=FALSE, check.names=T
}
colNames <- unlist(colNames)
if(anyDuplicated(colNames) != 0){
- cat("\n Warning: Some column names in study", j, "are duplicated and a suffix '.k' will be added to the kth replicate \n")
+ message("\n Warning: Some column names in study", j, "are duplicated and a suffix '.k' will be added to the kth replicate \n")
}
}
}
@@ -178,7 +178,7 @@ ds.dataFrame <- function(x=NULL, row.names=NULL, check.rows=FALSE, check.names=T
next.class <- DSI::datashield.aggregate(datasources[std], calltext1)
class.vector <- c(class.vector, next.class[[1]])
if (notify.of.progress){
- cat("\n",j," of ", length(x), " elements to combine in step 1 of 2 in study ", std, "\n")
+ message("\n",j," of ", length(x), " elements to combine in step 1 of 2 in study ", std, "\n")
}
}
for(j in 1:length(x)){
@@ -186,14 +186,14 @@ ds.dataFrame <- function(x=NULL, row.names=NULL, check.rows=FALSE, check.names=T
if(class.vector[j]!="data.frame" && class.vector[j]!="matrix"){
colname.vector <- c(colname.vector, test.df)
if (notify.of.progress){
- cat("\n",j," of ", length(x), " elements to combine in step 2 of 2 in study ", std, "\n")
+ message("\n",j," of ", length(x), " elements to combine in step 2 of 2 in study ", std, "\n")
}
}else{
calltext2 <- call('colnamesDS', test.df)
df.names <- DSI::datashield.aggregate(datasources[std], calltext2)
colname.vector <- c(colname.vector, df.names[[1]])
if (notify.of.progress){
- cat("\n", j," of ", length(x), " elements to combine in step 2 of 2 in study ", std, "\n")
+ message("\n", j," of ", length(x), " elements to combine in step 2 of 2 in study ", std, "\n")
}
}
}
@@ -201,7 +201,7 @@ ds.dataFrame <- function(x=NULL, row.names=NULL, check.rows=FALSE, check.names=T
}
if (notify.of.progress){
- cat("\nBoth steps in all studies completed\n")
+ message("\nBoth steps in all studies completed\n")
}
# prepare vectors for transmission
diff --git a/R/ds.dataFrameSubset.R b/R/ds.dataFrameSubset.R
index 1c5ff6a00..1ae6278db 100644
--- a/R/ds.dataFrameSubset.R
+++ b/R/ds.dataFrameSubset.R
@@ -231,13 +231,13 @@ if(!is.null(rm.cols)){
if (notify.of.progress)
{
if(num.messages==1){
- cat("\nSource",s,"\n",return.warning.message[[s]][[1]],"\n")
+ message("\nSource",s,"\n",return.warning.message[[s]][[1]],"\n")
}else{
- cat("\nSource",s,"\n")
+ message("\nSource",s,"\n")
for(m in 1:(num.messages-1)){
- cat(return.warning.message[[s]][[m]],"\n")
+ message(return.warning.message[[s]][[m]],"\n")
}
- cat(return.warning.message[[s]][[num.messages]],"\n")
+ message(return.warning.message[[s]][[num.messages]],"\n")
}
}
}
diff --git a/R/ds.dmtC2S.R b/R/ds.dmtC2S.R
index ee2e4be67..085d198fb 100644
--- a/R/ds.dmtC2S.R
+++ b/R/ds.dmtC2S.R
@@ -93,7 +93,7 @@ if(dplyr::is.tbl(dfdata))
if(!is.matrix(dfdata) && !is.data.frame(dfdata) && !dplyr::is.tbl(dfdata))
{
- cat("\n FAILED: must either be a data.frame, matrix or tibble")
+ message("\n FAILED: must either be a data.frame, matrix or tibble")
return('Please respecify')
}
diff --git a/R/ds.extractQuantiles.R b/R/ds.extractQuantiles.R
index ba39dd51c..4068f8f3b 100644
--- a/R/ds.extractQuantiles.R
+++ b/R/ds.extractQuantiles.R
@@ -224,7 +224,7 @@ datasources.in.current.function<-datasources
#CALL CLIENTSIDE FUNCTION ds.dmtC2S TO RETURN final.quantile.df TO SERVERSIDE
dsBaseClient::ds.dmtC2S(dfdata=final.quantile.df,newobj="final.quantile.df",datasources = datasources.in.current.function)
- cat("\n\n\n"," FINAL RANKING PROCEDURES COMPLETE:
+ message("\n\n\n"," FINAL RANKING PROCEDURES COMPLETE:
PRIMARY RANKING OUTPUT IS IN DATA FRAME",extract.summary.output.ranks.df,
"
WHICH IS SORTED BY",extract.ranks.sort.by," AND HAS BEEN
diff --git a/R/ds.forestplot.R b/R/ds.forestplot.R
index 60227913c..e1bc21c13 100644
--- a/R/ds.forestplot.R
+++ b/R/ds.forestplot.R
@@ -10,6 +10,7 @@
#' See details from \code{?meta::metagen} for the different options.
#' @param layout \code{character} (default \code{"JAMA"}) Layout of the plot.
#' See details from \code{?meta::metagen} for the different options.
+#' @return Results a foresplot object created with `meta::forest`.
#'
#' @export
#'
diff --git a/R/ds.glm.R b/R/ds.glm.R
index 13cba2d96..8b1dbceb7 100644
--- a/R/ds.glm.R
+++ b/R/ds.glm.R
@@ -343,10 +343,10 @@ ds.glm <- function(formula=NULL, data=NULL, family=NULL, offset=NULL, weights=NU
# to provide name of offset or weights variable
if(sum(as.numeric(grepl('offset', formula, ignore.case=TRUE)))>0 ||
sum(as.numeric(grepl('weights', formula, ignore.case=TRUE)))>0){
- cat("\n\n WARNING: you may have specified an offset or regression weights")
- cat("\n as part of the model formula. In ds.glm (unlike the usual glm in R)")
- cat("\n you must specify an offset or weights separately from the formula")
- cat("\n using the offset or weights argument.\n\n")
+ message("\n\n WARNING: you may have specified an offset or regression weights")
+ message("\n as part of the model formula. In ds.glm (unlike the usual glm in R)")
+ message("\n you must specify an offset or weights separately from the formula")
+ message("\n using the offset or weights argument.\n\n")
}
formula <- stats::as.formula(formula)
@@ -451,12 +451,12 @@ ds.glm <- function(formula=NULL, data=NULL, family=NULL, offset=NULL, weights=NU
"Any values of 1 in the following tables denote potential disclosure risks\n",
"please use the argument to include only valid studies.\n",
"Errors by study are as follows:\n")
- print(as.matrix(y.invalid))
- print(as.matrix(Xpar.invalid))
- print(as.matrix(w.invalid))
- print(as.matrix(o.invalid))
- print(as.matrix(glm.saturation.invalid))
- print(as.matrix(errorMessage))
+ message(as.matrix(y.invalid))
+ message(as.matrix(Xpar.invalid))
+ message(as.matrix(w.invalid))
+ message(as.matrix(o.invalid))
+ message(as.matrix(glm.saturation.invalid))
+ message(as.matrix(errorMessage))
return(list(
output.blocked.information.1,
diff --git a/R/ds.glmSLMA.R b/R/ds.glmSLMA.R
index 9b46a6a40..3c9d0edb5 100644
--- a/R/ds.glmSLMA.R
+++ b/R/ds.glmSLMA.R
@@ -398,10 +398,10 @@ ds.glmSLMA<-function(formula=NULL, family=NULL, offset=NULL, weights=NULL, combi
if(sum(as.numeric(grepl('offset', formula, ignore.case=TRUE)))>0 ||
sum(as.numeric(grepl('weights', formula, ignore.case=TRUE)))>0)
{
- cat("\n\n WARNING: you may have specified an offset or regression weights")
- cat("\n as part of the model formula. In ds.glm (unlike the usual glm in R)")
- cat("\n you must specify an offset or weights separately from the formula")
- cat("\n using the offset or weights argument.\n\n")
+ message("\n\n WARNING: you may have specified an offset or regression weights")
+ message("\n as part of the model formula. In ds.glm (unlike the usual glm in R)")
+ message("\n you must specify an offset or weights separately from the formula")
+ message("\n using the offset or weights argument.\n\n")
}
formula <- stats::as.formula(formula)
@@ -617,7 +617,7 @@ if(at.least.one.study.data.error)
}
if (notify.of.progress) {
- cat("\n\nSAVING SERVERSIDE glm OBJECT AS: <",newobj,">\n\n")
+ message("\n\nSAVING SERVERSIDE glm OBJECT AS: <",newobj,">\n\n")
}
calltext.2 <- call('glmSLMADS.assign', formula, family, offset, weights, dataName)
@@ -664,17 +664,17 @@ if(!all.studies.valid)
{
for(sse in study.with.errors)
{
- cat("\n","Error report from second serverside function for study",sse,"\n")
- cat("############################################################","\n")
- cat(unlist(study.summary[[sse]][[1]]),"\n")
- cat(unlist(study.summary[[sse]][[2]]),"\n\n")
+ message("\n","Error report from second serverside function for study",sse,"\n")
+ message("############################################################","\n")
+ message(unlist(study.summary[[sse]][[1]]),"\n")
+ message(unlist(study.summary[[sse]][[2]]),"\n\n")
num.messages<-length(study.summary[[sse]])-2
for(m in 1:num.messages)
{
if(!is.null(unlist(study.summary[[sse]][[2+m]])))
{
- cat(unlist(study.summary[[sse]][[2+m]]),"\n\n")
+ message(unlist(study.summary[[sse]][[2+m]]),"\n\n")
}
}
}
@@ -806,8 +806,8 @@ if(num.valid.studies>1){
if(!coefficient.vectors.match){
- cat("\n\nModels in different sources vary in structure\nplease match coefficients for meta-analysis individually\n")
- cat("nYou can use the DataSHIELD generated estimates and standard errors as the basis for a meta-analysis\nbut carry out the final pooling step independently of DataSHIELD using whatever meta-analysis package you wish\n\n")
+ message("\n\nModels in different sources vary in structure\nplease match coefficients for meta-analysis individually\n")
+ message("nYou can use the DataSHIELD generated estimates and standard errors as the basis for a meta-analysis\nbut carry out the final pooling step independently of DataSHIELD using whatever meta-analysis package you wish\n\n")
return(list(output.summary=output.summary))
}
diff --git a/R/ds.glmSummary.R b/R/ds.glmSummary.R
index 5629d937f..9fc259c5b 100644
--- a/R/ds.glmSummary.R
+++ b/R/ds.glmSummary.R
@@ -172,17 +172,17 @@ if(obj.name.exists.in.all.sources && obj.non.null.in.all.sources){ #
#
#
# if(no.errors){ #
-# cat("\n\nCREATE ASSIGN OBJECT\n") #
+# message("\n\nCREATE ASSIGN OBJECT\n") #
# #
# validity.check<-paste0("<",test.obj.name, "> appears valid in all sources") #
# print(list(is.object.created=return.message,validity.check=validity.check)) #
# } #
#
if(!no.errors){ #
- validity.check<-paste0("<",test.obj.name,"> invalid in at least one source. See studyside.messages:") #
- print(list(is.object.created=return.message,validity.check=validity.check, #
- studyside.messages=studyside.message)) #
- } #
+ validity.check<-paste0("<",test.obj.name,"> invalid in at least one source. See studyside.messages:") #
+ message(list(is.object.created=return.message,validity.check=validity.check, #
+ studyside.messages=studyside.message)) #
+ } #
#
#END OF CHECK OBJECT CREATED CORECTLY MODULE #
#############################################################################################################
diff --git a/R/ds.glmerSLMA.R b/R/ds.glmerSLMA.R
index 8bb8aa36f..b996707ef 100644
--- a/R/ds.glmerSLMA.R
+++ b/R/ds.glmerSLMA.R
@@ -269,10 +269,10 @@ ds.glmerSLMA <- function(formula=NULL, offset=NULL, weights=NULL, combine.with.m
if(sum(as.numeric(grepl('offset', formula, ignore.case=TRUE)))>0 ||
sum(as.numeric(grepl('weights', formula, ignore.case=TRUE)))>0)
{
- cat("\n\n WARNING: you may have specified an offset or regression weights")
- cat("\n as part of the model formula. In ds.glm (unlike the usual glm in R)")
- cat("\n you must specify an offset or weights separately from the formula")
- cat("\n using the offset or weights argument.\n\n")
+ message("\n\n WARNING: you may have specified an offset or regression weights")
+ message("\n as part of the model formula. In ds.glm (unlike the usual glm in R)")
+ message("\n you must specify an offset or weights separately from the formula")
+ message("\n using the offset or weights argument.\n\n")
}
formula <- stats::as.formula(formula)
@@ -363,7 +363,7 @@ ds.glmerSLMA <- function(formula=NULL, offset=NULL, weights=NULL, combine.with.m
if (notify.of.progress) {
- cat("\n\nSAVING SERVERSIDE glmerMod OBJECT AS: <",newobj,">\n\n")
+ message("\n\nSAVING SERVERSIDE glmerMod OBJECT AS: <",newobj,">\n\n")
}
calltext.2 <- call('glmerSLMADS.assign', formula, offset, weights, dataName, family,
@@ -407,17 +407,17 @@ ds.glmerSLMA <- function(formula=NULL, offset=NULL, weights=NULL, combine.with.m
{
for(sse in study.with.errors)
{
- cat("\n","Error report from second serverside function for study",sse,"\n")
- cat("############################################################","\n")
- cat(unlist(study.summary[[sse]][[1]]),"\n")
- cat(unlist(study.summary[[sse]][[2]]),"\n\n")
+ message("\n","Error report from second serverside function for study",sse,"\n")
+ message("############################################################","\n")
+ message(unlist(study.summary[[sse]][[1]]),"\n")
+ message(unlist(study.summary[[sse]][[2]]),"\n\n")
num.messages<-length(study.summary[[sse]])-2
for(m in 1:num.messages)
{
if(!is.null(unlist(study.summary[[sse]][[2+m]])))
{
- cat(unlist(study.summary[[sse]][[2+m]]),"\n\n")
+ message(unlist(study.summary[[sse]][[2+m]]),"\n\n")
}
}
}
@@ -425,8 +425,8 @@ ds.glmerSLMA <- function(formula=NULL, offset=NULL, weights=NULL, combine.with.m
if(all.studies.valid)
{
- cat("\nAll studies passed disclosure tests\n")
- cat("Please check for convergence warnings in the study summaries\n\n\n")
+ message("\nAll studies passed disclosure tests\n")
+ message("Please check for convergence warnings in the study summaries\n\n\n")
}
}
@@ -551,8 +551,8 @@ ds.glmerSLMA <- function(formula=NULL, offset=NULL, weights=NULL, combine.with.m
if(!coefficient.vectors.match){
- cat("\n\nModels in different sources vary in structure\nplease match coefficients for meta-analysis individually\n")
- cat("nYou can use the DataSHIELD generated estimates and standard errors as the basis for a meta-analysis\nbut carry out the final pooling step independently of DataSHIELD using whatever meta-analysis package you wish\n\n")
+ message("\n\nModels in different sources vary in structure\nplease match coefficients for meta-analysis individually\n")
+ message("nYou can use the DataSHIELD generated estimates and standard errors as the basis for a meta-analysis\nbut carry out the final pooling step independently of DataSHIELD using whatever meta-analysis package you wish\n\n")
return(list(output.summary=output.summary))
}
@@ -615,10 +615,10 @@ ds.glmerSLMA <- function(formula=NULL, offset=NULL, weights=NULL, combine.with.m
if (notify.of.progress)
{
- cat("Convergence information\n")
+ message("Convergence information\n")
for(r in 1:numstudies)
{
- cat(full.error.message[r],"\n")
+ message(full.error.message[r],"\n")
}
}
diff --git a/R/ds.heatmapPlot.R b/R/ds.heatmapPlot.R
index 262b1d700..024224aa5 100644
--- a/R/ds.heatmapPlot.R
+++ b/R/ds.heatmapPlot.R
@@ -169,6 +169,10 @@ ds.heatmapPlot <- function(x=NULL, y=NULL, type="combine", show="all", numints=2
stop("y=NULL. Please provide the names of the 2nd numeric vector!", call.=FALSE)
}
+ # Save par and setup reseting of par values
+ old_par <- graphics::par(no.readonly = TRUE)
+ on.exit(graphics::par(old_par), add = TRUE)
+
# check if the input objects are defined in all the studies
isDefined(datasources, x)
isDefined(datasources, y)
diff --git a/R/ds.histogram.R b/R/ds.histogram.R
index 0f5357b77..0fbe2e209 100644
--- a/R/ds.histogram.R
+++ b/R/ds.histogram.R
@@ -167,6 +167,10 @@ ds.histogram <- function(x=NULL, type="split", num.breaks=10, method="smallCells
stop("Please provide the name of the input vector!", call.=FALSE)
}
+ # Save par and setup reseting of par values
+ old_par <- graphics::par(no.readonly = TRUE)
+ on.exit(graphics::par(old_par), add = TRUE)
+
# check if the input object is defined in all the studies
isDefined(datasources, x)
diff --git a/R/ds.listClientsideFunctions.R b/R/ds.listClientsideFunctions.R
index ba7c57a89..752401471 100644
--- a/R/ds.listClientsideFunctions.R
+++ b/R/ds.listClientsideFunctions.R
@@ -57,48 +57,30 @@ for(j in 1:length(search.path))
}
- cat("\n### Full search path \n")
print.search.list<-search()
- print(print.search.list)
if(test.userDefinedClient==TRUE)
{
- cat("\n### userDefinedClient functions \n")
print.text<-ls(pos=".GlobalEnv",pattern="ds.*")
if(identical(print.text,character(0)))print.text<-"No clientside functions in this repository"
- print(print.text)
print.text.full<-c(print.text.full,print.text)
}
if(test.dsBetaTestClient==TRUE)
{
- cat("\n### dsBetaTestClient functions \n")
print.text<-ls(pos="package:dsBetaTestClient")
if(identical(print.text,character(0)))print.text<-"No clientside functions in this repository"
- print(print.text)
print.text.full<-c(print.text.full,print.text)
}
if(test.dsBaseClient==TRUE)
{
- cat("\n### dsBaseClient functions \n")
print.text<-ls(pos="package:dsBaseClient")
if(identical(print.text,character(0)))print.text<-"No clientside functions in this repository"
- print(print.text)
print.text.full<-c(print.text.full,print.text)
}
- if(test.no.functions==TRUE)
- {
- cat("\n### No standard clientside functions identified \n")
- }
-
- cat("\nIf you cannot see one or more of the clientside functions you expected to find",
- "please see above for the full search path. If one of the paths is a possible clientside repository",
- "issue the R command ls(pos='package:dsPackageName')",
- "where 'package:dsPackageName' is the full name stated in the search path\n\n")
-
return(print.text.full)
}
# ds.listClientsideFunctions()
diff --git a/R/ds.lmerSLMA.R b/R/ds.lmerSLMA.R
index b6d05c9bf..8b7c69b2c 100644
--- a/R/ds.lmerSLMA.R
+++ b/R/ds.lmerSLMA.R
@@ -225,10 +225,10 @@ ds.lmerSLMA <- function(formula=NULL, offset=NULL, weights=NULL, combine.with.me
if(sum(as.numeric(grepl('offset', formula, ignore.case=TRUE)))>0 ||
sum(as.numeric(grepl('weights', formula, ignore.case=TRUE)))>0)
{
- cat("\n\n WARNING: you may have specified an offset or regression weights")
- cat("\n as part of the model formula. In ds.glm (unlike the usual glm in R)")
- cat("\n you must specify an offset or weights separately from the formula")
- cat("\n using the offset or weights argument.\n\n")
+ message("\n\n WARNING: you may have specified an offset or regression weights")
+ message("\n as part of the model formula. In ds.glm (unlike the usual glm in R)")
+ message("\n you must specify an offset or weights separately from the formula")
+ message("\n using the offset or weights argument.\n\n")
}
formula <- stats::as.formula(formula)
@@ -286,7 +286,7 @@ ds.lmerSLMA <- function(formula=NULL, offset=NULL, weights=NULL, combine.with.me
if(!is.null(optimizer)&&optimizer!="nloptwrap")
{
errorMessage.opt<-"ERROR: the only optimizer currently available for lmer is 'nloptwrap', please respecify"
- cat("\n",errorMessage.opt,"\n")
+ message("\n",errorMessage.opt,"\n")
return(list(errorMessage=errorMessage.opt))
}
@@ -303,7 +303,7 @@ ds.lmerSLMA <- function(formula=NULL, offset=NULL, weights=NULL, combine.with.me
}
if (notify.of.progress) {
- cat("\n\nSAVING SERVERSIDE lmerMod OBJECT AS: <",newobj,">\n\n")
+ message("\n\nSAVING SERVERSIDE lmerMod OBJECT AS: <",newobj,">\n\n")
}
calltext.2 <- call('lmerSLMADS.assign', formula, offset, weights, dataName, REML,
@@ -343,17 +343,17 @@ ds.lmerSLMA <- function(formula=NULL, offset=NULL, weights=NULL, combine.with.me
{
for(sse in study.with.errors)
{
- cat("\n","Error report from second serverside function for study",sse,"\n")
- cat("############################################################","\n")
- cat(unlist(study.summary[[sse]][[1]]),"\n")
- cat(unlist(study.summary[[sse]][[2]]),"\n\n")
+ message("\n","Error report from second serverside function for study",sse,"\n")
+ message("############################################################","\n")
+ message(unlist(study.summary[[sse]][[1]]),"\n")
+ message(unlist(study.summary[[sse]][[2]]),"\n\n")
num.messages<-length(study.summary[[sse]])-2
for(m in 1:num.messages)
{
if(!is.null(unlist(study.summary[[sse]][[2+m]])))
{
- cat(unlist(study.summary[[sse]][[2+m]]),"\n\n")
+ message(unlist(study.summary[[sse]][[2+m]]),"\n\n")
}
}
}
@@ -361,8 +361,8 @@ ds.lmerSLMA <- function(formula=NULL, offset=NULL, weights=NULL, combine.with.me
if(all.studies.valid)
{
- cat("\nAll studies passed disclosure tests\n")
- cat("Please check for convergence warnings in the study summaries\n\n\n")
+ message("\nAll studies passed disclosure tests\n")
+ message("Please check for convergence warnings in the study summaries\n\n\n")
}
}
@@ -488,8 +488,8 @@ ds.lmerSLMA <- function(formula=NULL, offset=NULL, weights=NULL, combine.with.me
if(!coefficient.vectors.match){
- cat("\n\nModels in different sources vary in structure\nplease match coefficients for meta-analysis individually\n")
- cat("nYou can use the DataSHIELD generated estimates and standard errors as the basis for a meta-analysis\nbut carry out the final pooling step independently of DataSHIELD using whatever meta-analysis package you wish\n\n")
+ message("\n\nModels in different sources vary in structure\nplease match coefficients for meta-analysis individually\n")
+ message("nYou can use the DataSHIELD generated estimates and standard errors as the basis for a meta-analysis\nbut carry out the final pooling step independently of DataSHIELD using whatever meta-analysis package you wish\n\n")
return(list(output.summary=output.summary))
}
@@ -552,10 +552,10 @@ for(q in 1:numstudies)
if (notify.of.progress)
{
- cat("Convergence information\n")
+ message("Convergence information\n")
for(r in 1:numstudies)
{
- cat(full.error.message[r],"\n")
+ message(full.error.message[r],"\n")
}
}
diff --git a/R/ds.matrix.R b/R/ds.matrix.R
index b90356c59..69ad3a728 100644
--- a/R/ds.matrix.R
+++ b/R/ds.matrix.R
@@ -171,7 +171,7 @@ ds.matrix <- function(mdata = NA, from="clientside.scalar", nrows.scalar=NULL, n
#Check that valid from has been specified
if(from!="serverside.vector"&&from!="serverside.scalar"&&from!="clientside.scalar")
{
- cat(" FAILED: must be specified as one of the following - 'serverside.vector',
+ message(" FAILED: must be specified as one of the following - 'serverside.vector',
'serverside.scalar', 'clientside.scalar'\n\n")
return('Please respecify')
}
diff --git a/R/ds.matrixDiag.R b/R/ds.matrixDiag.R
index 8c8ca877a..1ea1341a4 100644
--- a/R/ds.matrixDiag.R
+++ b/R/ds.matrixDiag.R
@@ -203,7 +203,7 @@ ds.matrixDiag<-function(x1=NULL, aim=NULL, nrows.scalar=NULL, newobj=NULL, datas
if(aim!="serverside.vector.2.matrix"&&aim!="serverside.scalar.2.matrix"&&aim!="serverside.matrix.2.vector"&&
aim!="clientside.vector.2.matrix"&&aim!="clientside.scalar.2.matrix")
{
- cat(" FAILED: aim must be specified as one of the following - 'serverside.vector.2.matrix',
+ message(" FAILED: aim must be specified as one of the following - 'serverside.vector.2.matrix',
'serverside.scalar.2.matrix', 'serverside.matrix.2.vector',
'clientside.vector.2.matrix', 'clientside.scalar.2.matrix'\n\n")
return('Please respecify')
diff --git a/R/ds.rBinom.R b/R/ds.rBinom.R
index 2f39f8b10..ec8b4f880 100644
--- a/R/ds.rBinom.R
+++ b/R/ds.rBinom.R
@@ -214,14 +214,14 @@ single.integer.seed<-c(single.integer.seed,seed.as.integer.study.specific)
if(seed.as.text=="NULL"){
-cat("NO SEED SET IN STUDY",study.id,"\n\n")
+message("NO SEED SET IN STUDY",study.id,"\n\n")
} else {
calltext <- paste0("setSeedDS(", seed.as.text, ")")
ssDS.obj[[study.id]] <- DSI::datashield.aggregate(datasources[study.id], as.symbol(calltext))
}
}
-cat("\n\n")
+message("\n\n")
diff --git a/R/ds.rNorm.R b/R/ds.rNorm.R
index 6100c8505..76d885f11 100644
--- a/R/ds.rNorm.R
+++ b/R/ds.rNorm.R
@@ -217,13 +217,13 @@ single.integer.seed<-c(single.integer.seed,seed.as.integer.study.specific)
if(seed.as.text=="NULL"){
-cat("NO SEED SET IN STUDY",study.id,"\n\n")
+message("NO SEED SET IN STUDY",study.id,"\n\n")
}
calltext <- paste0("setSeedDS(", seed.as.text, ")")
ssDS.obj[[study.id]] <- DSI::datashield.aggregate(datasources[study.id], as.symbol(calltext))
}
-cat("\n\n")
+message("\n\n")
diff --git a/R/ds.rPois.R b/R/ds.rPois.R
index 2d2c7f019..74be7fdf7 100644
--- a/R/ds.rPois.R
+++ b/R/ds.rPois.R
@@ -190,13 +190,13 @@ single.integer.seed<-c(single.integer.seed,seed.as.integer.study.specific)
if(seed.as.text=="NULL"){
-cat("NO SEED SET IN STUDY",study.id,"\n\n")
+message("NO SEED SET IN STUDY",study.id,"\n\n")
}
calltext <- paste0("setSeedDS(", seed.as.text, ")")
ssDS.obj[[study.id]] <- DSI::datashield.aggregate(datasources[study.id], as.symbol(calltext))
}
-cat("\n\n")
+message("\n\n")
diff --git a/R/ds.rUnif.R b/R/ds.rUnif.R
index d98fa28f0..ea74766b5 100644
--- a/R/ds.rUnif.R
+++ b/R/ds.rUnif.R
@@ -232,7 +232,7 @@ single.integer.seed<-c(single.integer.seed,seed.as.integer.study.specific)
if(seed.as.text=="NULL"){
-cat("NO SEED SET IN STUDY",study.id,"\n")
+message("NO SEED SET IN STUDY",study.id,"\n")
} else {
calltext <- paste0("setSeedDS(", seed.as.text, ")")
diff --git a/R/ds.ranksSecure.R b/R/ds.ranksSecure.R
index 1d9d98ed9..8ffa6a971 100644
--- a/R/ds.ranksSecure.R
+++ b/R/ds.ranksSecure.R
@@ -228,7 +228,7 @@ ds.ranksSecure <- function(input.var.name=NULL, quantiles.for.estimation="0.05-0
}
if(monitor.progress){
-cat("\n\nStep 1 of 8 complete:
+message("\n\nStep 1 of 8 complete:
Cleaned up residual output from
previous runs of ds.ranksSecure
@@ -272,7 +272,7 @@ cat("\n\nStep 1 of 8 complete:
dsBaseClient::ds.dmtC2S(dfdata=input.mean.sd.df,newobj="input.mean.sd.df")
if(monitor.progress){
-cat("\n\nStep 2 of 8 complete:
+message("\n\nStep 2 of 8 complete:
Estimated mean and sd of
v2br to standardise initial values
@@ -308,7 +308,7 @@ cat("\n\nStep 2 of 8 complete:
dsBaseClient::ds.dmtC2S(dfdata=min.max.df,newobj="min.max.df")
if(monitor.progress){
-cat("\n\nStep 3 of 8 complete:
+message("\n\nStep 3 of 8 complete:
Generated ultra max and ultra min values to allocate to
missing values if is NA.hi or NA.low
@@ -316,9 +316,6 @@ cat("\n\nStep 3 of 8 complete:
")
}
-print(input.mean.sd.df)
-
-
#CALL THE FIRST SERVER SIDE FUNCTION (ASSIGN)
#WRITES ENCRYPTED DATA TO SERVERSIDE OBJECT "blackbox.output.df"
calltext1 <- call("blackBoxDS", input.var.name=input.var.name,
@@ -328,7 +325,7 @@ print(input.mean.sd.df)
DSI::datashield.assign(datasources, "blackbox.output.df", calltext1)
if(monitor.progress){
-cat("\n\nStep 4 of 8 complete:
+message("\n\nStep 4 of 8 complete:
Pseudo data synthesised,first set of rank-consistent
transformations complete and blackbox.output.df created
@@ -390,7 +387,7 @@ cat("\n\nStep 4 of 8 complete:
ds.make("sR5.df$global.rank","testvar.ranks")
if(monitor.progress){
-cat("\n\nStep 5 of 8 complete:
+ message("\n\nStep 5 of 8 complete:
Global ranks generated and pseudodata stripped out. Now ready
to proceed to transformation of global ranks
@@ -445,7 +442,7 @@ cat("\n\nStep 5 of 8 complete:
DSI::datashield.assign(datasources, "blackbox.ranks.df", calltext4)
if(monitor.progress){
-cat("\n\nStep 6 of 8 complete:
+ message("\n\nStep 6 of 8 complete:
Rank-consistent transformations of global ranks complete
and blackbox.ranks.df created
@@ -510,7 +507,7 @@ cat("\n\nStep 6 of 8 complete:
DSI::datashield.assign(datasources,summary.output.ranks.df, calltext7)
if(monitor.progress){
-cat("\n\nStep 7 of 8 complete:
+ message("\n\nStep 7 of 8 complete:
Final global ranking of values in v2br complete and
written to each serverside as appropriate
@@ -544,7 +541,7 @@ cat("\n\nStep 7 of 8 complete:
}
if(monitor.progress && rm.residual.objects){
-cat("\n\nStep 8 of 8 complete:
+ message("\n\nStep 8 of 8 complete:
Cleaned up residual output from running ds.ranksSecure
@@ -552,7 +549,7 @@ cat("\n\nStep 8 of 8 complete:
}
if(monitor.progress && !rm.residual.objects){
- cat("\n\nStep 8 of 8 complete:
+ message("\n\nStep 8 of 8 complete:
Residual output from running ds.ranksSecure NOT deleted
@@ -562,14 +559,14 @@ cat("\n\nStep 8 of 8 complete:
if(!generate.quantiles){
- cat("\n\n\n"," FINAL RANKING PROCEDURES COMPLETE:
+ message("\n\n\n"," FINAL RANKING PROCEDURES COMPLETE:
PRIMARY RANKING OUTPUT IS IN DATA FRAME",summary.output.ranks.df,
"
WHICH IS SORTED BY",ranks.sort.by," AND HAS BEEN
WRITTEN TO THE SERVERSIDE\n\n\n\n")
info.message<-"As the argument was set to FALSE no quantiles have been estimated.Please set argument to TRUE if you want to estimate quantiles such as median, quartiles and 90th percentile"
- cat("\n\n",info.message,"\n\n")
+ message("\n\n",info.message,"\n\n")
return(info.message)
}
diff --git a/R/ds.rbind.R b/R/ds.rbind.R
index 47e9165c2..d0aca96a8 100644
--- a/R/ds.rbind.R
+++ b/R/ds.rbind.R
@@ -133,7 +133,7 @@ calltext1<-call('classDS', testclass.var)
next.class <- DSI::datashield.aggregate(datasources, calltext1)
class.vector<-c(class.vector,next.class[[1]])
if (notify.of.progress)
- cat("\n",j," of ", length(x), " elements to combine in step 1 of 2\n")
+ message("\n",j," of ", length(x), " elements to combine in step 1 of 2\n")
}
for(j in 1:length(x))
@@ -144,7 +144,7 @@ if(class.vector[j]!="data.frame" && class.vector[j]!="matrix")
{
colname.vector<-c(colname.vector,test.df)
if (notify.of.progress)
- cat("\n",j," of ", length(x), " elements to combine in step 2 of 2\n")
+ message("\n",j," of ", length(x), " elements to combine in step 2 of 2\n")
}
else
{
@@ -152,11 +152,11 @@ else
df.names <- DSI::datashield.aggregate(datasources, calltext2)
colname.vector<-c(colname.vector,df.names[[1]])
if (notify.of.progress)
- cat("\n",j," of ", length(x), " elements to combine in step 2 of 2\n")
+ message("\n",j," of ", length(x), " elements to combine in step 2 of 2\n")
}
}
if (notify.of.progress)
- cat("\nBoth steps completed\n")
+ message("\nBoth steps completed\n")
#CHECK FOR DUPLICATE NAMES IN COLUMN NAME VECTOR AND ADD ".k" TO THE kth REPLICATE
num.duplicates<-rep(0,length(colname.vector))
diff --git a/R/ds.rep.R b/R/ds.rep.R
index 2d2ce9515..2f3e03010 100644
--- a/R/ds.rep.R
+++ b/R/ds.rep.R
@@ -151,7 +151,7 @@ if(source.each=='s')source.each<-'serverside'
#Check that source has been specified
if(source.x1!="serverside"&&source.x1!="clientside")
{
- cat(" FAILED: if source.x1 is non-null it must be specified as
+ message(" FAILED: if source.x1 is non-null it must be specified as
one of the following: 'clientside','serverside','c', or 's'\n\n")
return('Please respecify')
}
@@ -174,7 +174,7 @@ if(source.each=='s')source.each<-'serverside'
#Check that source has been specified
if(source.times!="serverside"&&source.times!="clientside"&&!is.null(source.times))
{
- cat(" FAILED: if source.times is non-null it must be specified as
+ message(" FAILED: if source.times is non-null it must be specified as
one of the following: 'clientside','serverside','c', or 's'\n\n")
return('Please respecify')
}
@@ -208,7 +208,7 @@ if(source.each=='s')source.each<-'serverside'
#Check that source has been specified
if(source.length.out!="serverside"&&source.length.out!="clientside"&&!is.null(source.length.out))
{
- cat(" FAILED: if source.length.out is non-null it must be specified as
+ message(" FAILED: if source.length.out is non-null it must be specified as
one of the following: 'clientside','serverside','c', or 's'\n\n")
return('Please respecify')
}
@@ -243,7 +243,7 @@ if(source.each=='s')source.each<-'serverside'
#Check that source has been specified
if(source.each!="serverside"&&source.each!="clientside"&&!is.null(source.each))
{
- cat(" FAILED: if source.each is non-null it must be specified as
+ message(" FAILED: if source.each is non-null it must be specified as
one of the following: 'clientside','serverside','c', or 's'\n\n")
return('Please respecify')
}
diff --git a/R/ds.sample.R b/R/ds.sample.R
index 08c1b04c1..9bd6780fb 100644
--- a/R/ds.sample.R
+++ b/R/ds.sample.R
@@ -207,18 +207,18 @@ single.integer.seed<-c(single.integer.seed,seed.as.integer.study.specific)
if(seed.as.text=="NULL"){
if (notify.of.progress)
- cat("NO SEED SET IN STUDY",study.id,"\n\n")
+ message("NO SEED SET IN STUDY",study.id,"\n\n")
}
calltext <- paste0("setSeedDS(", seed.as.text, ")")
if (notify.of.progress)
- print(calltext)
+ message(calltext)
ssDS.obj[[study.id]] <- DSI::datashield.aggregate(datasources[study.id], as.symbol(calltext))
}
if (notify.of.progress)
- cat("\n\n")
+ message("\n\n")
diff --git a/R/ds.scatterPlot.R b/R/ds.scatterPlot.R
index 6c2c78058..55804b3b0 100644
--- a/R/ds.scatterPlot.R
+++ b/R/ds.scatterPlot.R
@@ -147,6 +147,10 @@ ds.scatterPlot <- function(x=NULL, y=NULL, method='deterministic', k=3, noise=0.
stop("The 'datasources' were expected to be a list of DSConnection-class objects", call.=FALSE)
}
+ # Save par and setup reseting of par values
+ old_par <- graphics::par(no.readonly = TRUE)
+ on.exit(graphics::par(old_par), add = TRUE)
+
# check if the input objects are defined in all the studies
isDefined(datasources, x)
isDefined(datasources, y)
diff --git a/R/ds.table.R b/R/ds.table.R
index 780f9f862..e1238e2a5 100644
--- a/R/ds.table.R
+++ b/R/ds.table.R
@@ -424,10 +424,10 @@ if(num.valid.studies==0)
if ((! table.assign) || report.chisq.tests)
{
validity.message<-"All studies failed for reasons identified below"
- cat("\n",validity.message,"\n\n")
+ message("\n",validity.message,"\n\n")
for(ns in 1:numsources.orig)
{
- cat("\nStudy",ns,": ",error.messages[[ns]],"\n")
+ message("\nStudy",ns,": ",error.messages[[ns]],"\n")
}
return(list(validity.message=validity.message,error.messages=error.messages))
@@ -476,12 +476,12 @@ for(ns in 1:numsources.orig)
validity.message<-c(validity.message,message.add)
}
-# cat("\n",validity.message,"\n")
+# message("\n",validity.message,"\n")
# for(ns in 1:numsources.orig)
# {
-# cat("\nStudy",ns,": ",error.messages[[ns]])
+# message("\nStudy",ns,": ",error.messages[[ns]])
# }
-# cat("\n\n")
+# message("\n\n")
#table.out<-table.out.valid
#numsources<-length(table.out)
@@ -492,12 +492,12 @@ if(num.valid.studies==numsources.orig)
validity.message<-"Data in all studies were valid"
if (! table.assign)
{
- cat("\n",validity.message,"\n")
+ message("\n",validity.message,"\n")
for(ns in 1:numsources.orig)
{
- cat("\nStudy",ns,": ",error.messages[[ns]])
+ message("\nStudy",ns,": ",error.messages[[ns]])
}
- cat("\n\n")
+ message("\n\n")
}
}
@@ -520,7 +520,6 @@ if(numsources>1)
{
all.dims.same<-FALSE
return.message<-"Warning: tables in different sources have different numbers of dimensions. Please analyse and combine yourself from study.specific tables above"
- print(return.message)
return(return.message)
}
}
@@ -649,7 +648,7 @@ cells.so.far<-0
table.current.study<-cbind(rvar.mark,cvar.mark,stvar.mark,count.in.cell)
table.current.study[is.na(table.current.study)]<-"NA"
-#cat("current study =",ns)
+#message("current study =",ns)
#print(table.current.study)
@@ -738,7 +737,7 @@ for(oo in 1:length(table.current.study[,1]))
if(d1.a!=d1||d2.a!=d2||d3.a!=d3)
{
return.message= "Dimensions of tables not behaving sensibly across studies.Please check the data in each study and calculate counts and percentages, yourself, using the counts from the individual studies"
- cat(return.message)
+ message(return.message)
return(return.message)
}
@@ -875,7 +874,7 @@ cells.so.far<-0
table.current.study<-cbind(rvar.mark,cvar.mark,count.in.cell)
table.current.study[is.na(table.current.study)]<-"NA"
-#cat("current study =",ns)
+#message("current study =",ns)
#print(table.current.study)
@@ -959,7 +958,7 @@ for(oo in 1:length(table.current.study[,1]))
if(d1.a!=d1||d2.a!=d2)
{
return.message= "Dimensions of tables not behaving sensibly across studies.Please check the data in each study and calculate counts and percentages, yourself, using the counts from the individual studies"
- cat(return.message)
+ message(return.message)
return(return.message)
}
@@ -1082,7 +1081,7 @@ cells.so.far<-0
table.current.study<-cbind(rvar.mark,count.in.cell)
table.current.study[is.na(table.current.study)]<-"NA"
-#cat("current study =",ns)
+#message("current study =",ns)
#print(table.current.study)
@@ -1153,7 +1152,7 @@ for(oo in 1:length(table.current.study[,1]))
if(d1.a!=d1)
{
return.message= "Dimensions of tables not behaving sensibly across studies.Please check the data in each study and calculate counts and percentages, yourself, using the counts from the individual studies"
- cat(return.message)
+ message(return.message)
return(return.message)
}
diff --git a/armadillo_azure-pipelines.yml b/armadillo_azure-pipelines.yml
index b7f98439e..4ff1f497d 100644
--- a/armadillo_azure-pipelines.yml
+++ b/armadillo_azure-pipelines.yml
@@ -132,7 +132,7 @@ jobs:
sudo apt-get upgrade -y
sudo apt-get install -qq libxml2-dev libcurl4-openssl-dev libssl-dev libgsl-dev libgit2-dev r-base -y
- sudo apt-get install -qq libharfbuzz-dev libfribidi-dev libmagick++-dev -y
+ sudo apt-get install -qq libharfbuzz-dev libfribidi-dev libmagick++-dev libudunits2-dev -y
sudo R -q -e "install.packages(c('devtools','covr'), dependencies=TRUE, repos='https://cloud.r-project.org')"
sudo R -q -e "install.packages(c('fields','meta','metafor','ggplot2','gridExtra','data.table'), dependencies=TRUE, repos='https://cloud.r-project.org')"
sudo R -q -e "install.packages(c('DSI','DSOpal','DSLite'), dependencies=TRUE, repos='https://cloud.r-project.org')"
diff --git a/docs/404.html b/docs/404.html
index 0679d8def..eaa2175ab 100644
--- a/docs/404.html
+++ b/docs/404.html
@@ -32,7 +32,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/LICENSE.html b/docs/LICENSE.html
index 8c771da38..a0698c657 100644
--- a/docs/LICENSE.html
+++ b/docs/LICENSE.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/authors.html b/docs/authors.html
index 564ece67f..a4610f7f6 100644
--- a/docs/authors.html
+++ b/docs/authors.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
@@ -102,12 +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 (????).
dsBaseClient: 'DataSHIELD' Client Side Base Functions.
-R package version 7.0.0-9000.
+R package version 7.0.0.9000.
@Manual{,
title = {dsBaseClient: 'DataSHIELD' Client 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},
- note = {R package version 7.0.0-9000},
+ note = {R package version 7.0.0.9000},
}
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 7841b0d65..d9e326524 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -33,7 +33,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/pkgdown.yml b/docs/pkgdown.yml
index 3ed574488..7b44fe056 100644
--- a/docs/pkgdown.yml
+++ b/docs/pkgdown.yml
@@ -2,4 +2,4 @@ pandoc: 3.1.3
pkgdown: 2.2.0
pkgdown_sha: ~
articles: {}
-last_built: 2025-11-14T18:39Z
+last_built: 2025-11-21T17:12Z
diff --git a/docs/reference/checkClass.html b/docs/reference/checkClass.html
index c46de990a..3dbe0638f 100644
--- a/docs/reference/checkClass.html
+++ b/docs/reference/checkClass.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/colPercent.html b/docs/reference/colPercent.html
index cbd981310..e526cfed4 100644
--- a/docs/reference/colPercent.html
+++ b/docs/reference/colPercent.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/computeWeightedMeans.html b/docs/reference/computeWeightedMeans.html
index 679684919..8a3962194 100644
--- a/docs/reference/computeWeightedMeans.html
+++ b/docs/reference/computeWeightedMeans.html
@@ -19,7 +19,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
@@ -71,6 +71,10 @@
Arguments
character vector of the columns to group by
+
+
Value
+
Returns a data table object with computed weighted means.
+
Author
Matthias Bannert, Gabriel Bucur
diff --git a/docs/reference/dot-pool_md_patterns.html b/docs/reference/dot-pool_md_patterns.html
index f25e02d13..e62ca7449 100644
--- a/docs/reference/dot-pool_md_patterns.html
+++ b/docs/reference/dot-pool_md_patterns.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.Boole.html b/docs/reference/ds.Boole.html
index 640649fd5..dfee7fdeb 100644
--- a/docs/reference/ds.Boole.html
+++ b/docs/reference/ds.Boole.html
@@ -20,7 +20,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.abs.html b/docs/reference/ds.abs.html
index 3861996eb..6c7416d19 100644
--- a/docs/reference/ds.abs.html
+++ b/docs/reference/ds.abs.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.asCharacter.html b/docs/reference/ds.asCharacter.html
index 451b75340..3138fd8db 100644
--- a/docs/reference/ds.asCharacter.html
+++ b/docs/reference/ds.asCharacter.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.asDataMatrix.html b/docs/reference/ds.asDataMatrix.html
index c1e781d66..c648b5751 100644
--- a/docs/reference/ds.asDataMatrix.html
+++ b/docs/reference/ds.asDataMatrix.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.asFactor.html b/docs/reference/ds.asFactor.html
index bca23a519..1066af69b 100644
--- a/docs/reference/ds.asFactor.html
+++ b/docs/reference/ds.asFactor.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.asFactorSimple.html b/docs/reference/ds.asFactorSimple.html
index db97ca6da..318c0cb51 100644
--- a/docs/reference/ds.asFactorSimple.html
+++ b/docs/reference/ds.asFactorSimple.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.asInteger.html b/docs/reference/ds.asInteger.html
index 39687a0a2..a8880380a 100644
--- a/docs/reference/ds.asInteger.html
+++ b/docs/reference/ds.asInteger.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.asList.html b/docs/reference/ds.asList.html
index d9326df29..8e1a65757 100644
--- a/docs/reference/ds.asList.html
+++ b/docs/reference/ds.asList.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.asLogical.html b/docs/reference/ds.asLogical.html
index e8cd5be2e..4399676b2 100644
--- a/docs/reference/ds.asLogical.html
+++ b/docs/reference/ds.asLogical.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.asMatrix.html b/docs/reference/ds.asMatrix.html
index bc02ef019..bca616735 100644
--- a/docs/reference/ds.asMatrix.html
+++ b/docs/reference/ds.asMatrix.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.asNumeric.html b/docs/reference/ds.asNumeric.html
index a925237c8..74c904736 100644
--- a/docs/reference/ds.asNumeric.html
+++ b/docs/reference/ds.asNumeric.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.assign.html b/docs/reference/ds.assign.html
index 4d45c9e3d..a67e73801 100644
--- a/docs/reference/ds.assign.html
+++ b/docs/reference/ds.assign.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.auc.html b/docs/reference/ds.auc.html
index 9d5e5ec26..9e38f92d5 100644
--- a/docs/reference/ds.auc.html
+++ b/docs/reference/ds.auc.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.boxPlot.html b/docs/reference/ds.boxPlot.html
index 623dce9f3..6e273535b 100644
--- a/docs/reference/ds.boxPlot.html
+++ b/docs/reference/ds.boxPlot.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.boxPlotGG.html b/docs/reference/ds.boxPlotGG.html
index 859eb74e5..00ff6fc35 100644
--- a/docs/reference/ds.boxPlotGG.html
+++ b/docs/reference/ds.boxPlotGG.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.boxPlotGG_data_Treatment.html b/docs/reference/ds.boxPlotGG_data_Treatment.html
index 7e047545b..3c303a3fb 100644
--- a/docs/reference/ds.boxPlotGG_data_Treatment.html
+++ b/docs/reference/ds.boxPlotGG_data_Treatment.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.boxPlotGG_data_Treatment_numeric.html b/docs/reference/ds.boxPlotGG_data_Treatment_numeric.html
index 86b7e274b..c40d3302e 100644
--- a/docs/reference/ds.boxPlotGG_data_Treatment_numeric.html
+++ b/docs/reference/ds.boxPlotGG_data_Treatment_numeric.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.boxPlotGG_numeric.html b/docs/reference/ds.boxPlotGG_numeric.html
index 14bc256c0..2026f88dc 100644
--- a/docs/reference/ds.boxPlotGG_numeric.html
+++ b/docs/reference/ds.boxPlotGG_numeric.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.boxPlotGG_table.html b/docs/reference/ds.boxPlotGG_table.html
index 602669afc..819848c97 100644
--- a/docs/reference/ds.boxPlotGG_table.html
+++ b/docs/reference/ds.boxPlotGG_table.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.bp_standards.html b/docs/reference/ds.bp_standards.html
index a059e099d..e44dc25ad 100644
--- a/docs/reference/ds.bp_standards.html
+++ b/docs/reference/ds.bp_standards.html
@@ -20,7 +20,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.c.html b/docs/reference/ds.c.html
index 775fde7e5..301e44812 100644
--- a/docs/reference/ds.c.html
+++ b/docs/reference/ds.c.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.cbind.html b/docs/reference/ds.cbind.html
index fb85d3789..987a131c6 100644
--- a/docs/reference/ds.cbind.html
+++ b/docs/reference/ds.cbind.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.changeRefGroup.html b/docs/reference/ds.changeRefGroup.html
index d52cbc264..38ff5e9cb 100644
--- a/docs/reference/ds.changeRefGroup.html
+++ b/docs/reference/ds.changeRefGroup.html
@@ -19,7 +19,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.class.html b/docs/reference/ds.class.html
index 2d7ddab81..f2aeb12ba 100644
--- a/docs/reference/ds.class.html
+++ b/docs/reference/ds.class.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.colnames.html b/docs/reference/ds.colnames.html
index ab4348bdd..4e90a603c 100644
--- a/docs/reference/ds.colnames.html
+++ b/docs/reference/ds.colnames.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.completeCases.html b/docs/reference/ds.completeCases.html
index 517b16491..13914f3c0 100644
--- a/docs/reference/ds.completeCases.html
+++ b/docs/reference/ds.completeCases.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.contourPlot.html b/docs/reference/ds.contourPlot.html
index 6cd413250..91e6c727c 100644
--- a/docs/reference/ds.contourPlot.html
+++ b/docs/reference/ds.contourPlot.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.cor.html b/docs/reference/ds.cor.html
index e5c1dbbbe..3b7a100b9 100644
--- a/docs/reference/ds.cor.html
+++ b/docs/reference/ds.cor.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.corTest.html b/docs/reference/ds.corTest.html
index e7a4090ff..1bf393c89 100644
--- a/docs/reference/ds.corTest.html
+++ b/docs/reference/ds.corTest.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.cov.html b/docs/reference/ds.cov.html
index 9b4caca1c..dec6c58f5 100644
--- a/docs/reference/ds.cov.html
+++ b/docs/reference/ds.cov.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.dataFrame.html b/docs/reference/ds.dataFrame.html
index 422baa6df..9a7790b55 100644
--- a/docs/reference/ds.dataFrame.html
+++ b/docs/reference/ds.dataFrame.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.dataFrameFill.html b/docs/reference/ds.dataFrameFill.html
index b6ac6d67c..b64d23b38 100644
--- a/docs/reference/ds.dataFrameFill.html
+++ b/docs/reference/ds.dataFrameFill.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.dataFrameSort.html b/docs/reference/ds.dataFrameSort.html
index b8a5dc889..0fad3dd87 100644
--- a/docs/reference/ds.dataFrameSort.html
+++ b/docs/reference/ds.dataFrameSort.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.dataFrameSubset.html b/docs/reference/ds.dataFrameSubset.html
index 6e9f99a0b..eb8a1f3a0 100644
--- a/docs/reference/ds.dataFrameSubset.html
+++ b/docs/reference/ds.dataFrameSubset.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.densityGrid.html b/docs/reference/ds.densityGrid.html
index 3d58398a7..4055ac5d7 100644
--- a/docs/reference/ds.densityGrid.html
+++ b/docs/reference/ds.densityGrid.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.dim.html b/docs/reference/ds.dim.html
index f6d963436..4805c721b 100644
--- a/docs/reference/ds.dim.html
+++ b/docs/reference/ds.dim.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.dmtC2S.html b/docs/reference/ds.dmtC2S.html
index 6d32132b1..046e46dfb 100644
--- a/docs/reference/ds.dmtC2S.html
+++ b/docs/reference/ds.dmtC2S.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.elspline.html b/docs/reference/ds.elspline.html
index 5a69199ad..877fb3e5f 100644
--- a/docs/reference/ds.elspline.html
+++ b/docs/reference/ds.elspline.html
@@ -20,7 +20,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.exists.html b/docs/reference/ds.exists.html
index 16592e1ca..4e434c2d1 100644
--- a/docs/reference/ds.exists.html
+++ b/docs/reference/ds.exists.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.exp.html b/docs/reference/ds.exp.html
index f0e795985..e6a3e2415 100644
--- a/docs/reference/ds.exp.html
+++ b/docs/reference/ds.exp.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.extractQuantiles.html b/docs/reference/ds.extractQuantiles.html
index 1cc7fdaea..a05cd2eb2 100644
--- a/docs/reference/ds.extractQuantiles.html
+++ b/docs/reference/ds.extractQuantiles.html
@@ -26,7 +26,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.forestplot.html b/docs/reference/ds.forestplot.html
index 1ffb3d19d..6fdd49375 100644
--- a/docs/reference/ds.forestplot.html
+++ b/docs/reference/ds.forestplot.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
@@ -73,6 +73,10 @@ Arguments
See details from ?meta::metagen for the different options.
+
+
Value
+
Results a foresplot object created with `meta::forest`.
+
Examples
diff --git a/docs/reference/ds.gamlss.html b/docs/reference/ds.gamlss.html
index 79a8fcc25..63b40ac9b 100644
--- a/docs/reference/ds.gamlss.html
+++ b/docs/reference/ds.gamlss.html
@@ -23,7 +23,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.getWGSR.html b/docs/reference/ds.getWGSR.html
index 9228b50f9..c341b2f27 100644
--- a/docs/reference/ds.getWGSR.html
+++ b/docs/reference/ds.getWGSR.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.glm.html b/docs/reference/ds.glm.html
index 97bcc3811..ddd6de576 100644
--- a/docs/reference/ds.glm.html
+++ b/docs/reference/ds.glm.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.glmPredict.html b/docs/reference/ds.glmPredict.html
index 3678794aa..e1f5ef23f 100644
--- a/docs/reference/ds.glmPredict.html
+++ b/docs/reference/ds.glmPredict.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.glmSLMA.html b/docs/reference/ds.glmSLMA.html
index 076528d36..6d9d6bad6 100644
--- a/docs/reference/ds.glmSLMA.html
+++ b/docs/reference/ds.glmSLMA.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.glmSummary.html b/docs/reference/ds.glmSummary.html
index 83ac5efba..8364a59b8 100644
--- a/docs/reference/ds.glmSummary.html
+++ b/docs/reference/ds.glmSummary.html
@@ -20,7 +20,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.glmerSLMA.html b/docs/reference/ds.glmerSLMA.html
index 4217f71e4..30b922258 100644
--- a/docs/reference/ds.glmerSLMA.html
+++ b/docs/reference/ds.glmerSLMA.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.heatmapPlot.html b/docs/reference/ds.heatmapPlot.html
index d2476cc13..8820c3a17 100644
--- a/docs/reference/ds.heatmapPlot.html
+++ b/docs/reference/ds.heatmapPlot.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.hetcor.html b/docs/reference/ds.hetcor.html
index f0786da14..624f2d552 100644
--- a/docs/reference/ds.hetcor.html
+++ b/docs/reference/ds.hetcor.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.histogram.html b/docs/reference/ds.histogram.html
index 590becf66..34035b2dd 100644
--- a/docs/reference/ds.histogram.html
+++ b/docs/reference/ds.histogram.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.igb_standards.html b/docs/reference/ds.igb_standards.html
index c549fdd5f..d7470a1c6 100644
--- a/docs/reference/ds.igb_standards.html
+++ b/docs/reference/ds.igb_standards.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.isNA.html b/docs/reference/ds.isNA.html
index abfbca319..587e51a88 100644
--- a/docs/reference/ds.isNA.html
+++ b/docs/reference/ds.isNA.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.isValid.html b/docs/reference/ds.isValid.html
index dd82d01d0..9ba978046 100644
--- a/docs/reference/ds.isValid.html
+++ b/docs/reference/ds.isValid.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.kurtosis.html b/docs/reference/ds.kurtosis.html
index 941711a91..e765331ec 100644
--- a/docs/reference/ds.kurtosis.html
+++ b/docs/reference/ds.kurtosis.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.length.html b/docs/reference/ds.length.html
index a4604fce2..654c28aff 100644
--- a/docs/reference/ds.length.html
+++ b/docs/reference/ds.length.html
@@ -19,7 +19,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.levels.html b/docs/reference/ds.levels.html
index afc142d43..dfd294163 100644
--- a/docs/reference/ds.levels.html
+++ b/docs/reference/ds.levels.html
@@ -19,7 +19,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.lexis.html b/docs/reference/ds.lexis.html
index bd9c936c1..131b98aee 100644
--- a/docs/reference/ds.lexis.html
+++ b/docs/reference/ds.lexis.html
@@ -19,7 +19,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.list.html b/docs/reference/ds.list.html
index f52a0c0ac..9e0cd5304 100644
--- a/docs/reference/ds.list.html
+++ b/docs/reference/ds.list.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.listClientsideFunctions.html b/docs/reference/ds.listClientsideFunctions.html
index 0722c2372..defc02cdb 100644
--- a/docs/reference/ds.listClientsideFunctions.html
+++ b/docs/reference/ds.listClientsideFunctions.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.listDisclosureSettings.html b/docs/reference/ds.listDisclosureSettings.html
index 6c4a0e68a..d539d43cc 100644
--- a/docs/reference/ds.listDisclosureSettings.html
+++ b/docs/reference/ds.listDisclosureSettings.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.listOpals.html b/docs/reference/ds.listOpals.html
index 15430f4d3..90f473b7a 100644
--- a/docs/reference/ds.listOpals.html
+++ b/docs/reference/ds.listOpals.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.listServersideFunctions.html b/docs/reference/ds.listServersideFunctions.html
index 217e51845..1395e31e3 100644
--- a/docs/reference/ds.listServersideFunctions.html
+++ b/docs/reference/ds.listServersideFunctions.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.lmerSLMA.html b/docs/reference/ds.lmerSLMA.html
index e9503af73..feb1b804b 100644
--- a/docs/reference/ds.lmerSLMA.html
+++ b/docs/reference/ds.lmerSLMA.html
@@ -19,7 +19,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.log.html b/docs/reference/ds.log.html
index e7c5823b0..702c219bb 100644
--- a/docs/reference/ds.log.html
+++ b/docs/reference/ds.log.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.look.html b/docs/reference/ds.look.html
index 8797b98e1..68d0fbde7 100644
--- a/docs/reference/ds.look.html
+++ b/docs/reference/ds.look.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.ls.html b/docs/reference/ds.ls.html
index 08bc8596a..2413c6855 100644
--- a/docs/reference/ds.ls.html
+++ b/docs/reference/ds.ls.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.lspline.html b/docs/reference/ds.lspline.html
index 5e0eb5174..98609889f 100644
--- a/docs/reference/ds.lspline.html
+++ b/docs/reference/ds.lspline.html
@@ -20,7 +20,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.make.html b/docs/reference/ds.make.html
index d53b6265b..38bd3b256 100644
--- a/docs/reference/ds.make.html
+++ b/docs/reference/ds.make.html
@@ -19,7 +19,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.matrix.html b/docs/reference/ds.matrix.html
index 082aaecd2..689d88dac 100644
--- a/docs/reference/ds.matrix.html
+++ b/docs/reference/ds.matrix.html
@@ -20,7 +20,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.matrixDet.html b/docs/reference/ds.matrixDet.html
index 4d9debf01..fd12e5ccf 100644
--- a/docs/reference/ds.matrixDet.html
+++ b/docs/reference/ds.matrixDet.html
@@ -20,7 +20,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.matrixDet.report.html b/docs/reference/ds.matrixDet.report.html
index f2a6fc036..a72b9191b 100644
--- a/docs/reference/ds.matrixDet.report.html
+++ b/docs/reference/ds.matrixDet.report.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.matrixDiag.html b/docs/reference/ds.matrixDiag.html
index eb01209f7..4842f2afc 100644
--- a/docs/reference/ds.matrixDiag.html
+++ b/docs/reference/ds.matrixDiag.html
@@ -19,7 +19,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.matrixDimnames.html b/docs/reference/ds.matrixDimnames.html
index 16d7c4638..0d52dc684 100644
--- a/docs/reference/ds.matrixDimnames.html
+++ b/docs/reference/ds.matrixDimnames.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.matrixInvert.html b/docs/reference/ds.matrixInvert.html
index bb517cc6c..ef812dc09 100644
--- a/docs/reference/ds.matrixInvert.html
+++ b/docs/reference/ds.matrixInvert.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.matrixMult.html b/docs/reference/ds.matrixMult.html
index 6c3b136b6..cf288087d 100644
--- a/docs/reference/ds.matrixMult.html
+++ b/docs/reference/ds.matrixMult.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.matrixTranspose.html b/docs/reference/ds.matrixTranspose.html
index 91a25ba7b..bfe3df4fa 100644
--- a/docs/reference/ds.matrixTranspose.html
+++ b/docs/reference/ds.matrixTranspose.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.mdPattern.html b/docs/reference/ds.mdPattern.html
index 8e298f079..4e2b3b447 100644
--- a/docs/reference/ds.mdPattern.html
+++ b/docs/reference/ds.mdPattern.html
@@ -19,7 +19,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.mean.html b/docs/reference/ds.mean.html
index 2cb23d3a2..a34248d52 100644
--- a/docs/reference/ds.mean.html
+++ b/docs/reference/ds.mean.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.meanByClass.html b/docs/reference/ds.meanByClass.html
index 0f977fad4..9f52098e1 100644
--- a/docs/reference/ds.meanByClass.html
+++ b/docs/reference/ds.meanByClass.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.meanSdGp.html b/docs/reference/ds.meanSdGp.html
index 4257089ce..94a474a0e 100644
--- a/docs/reference/ds.meanSdGp.html
+++ b/docs/reference/ds.meanSdGp.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.merge.html b/docs/reference/ds.merge.html
index adf520da6..b42339e8d 100644
--- a/docs/reference/ds.merge.html
+++ b/docs/reference/ds.merge.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.message.html b/docs/reference/ds.message.html
index 187f124ad..0077360ba 100644
--- a/docs/reference/ds.message.html
+++ b/docs/reference/ds.message.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.metadata.html b/docs/reference/ds.metadata.html
index a214bacdb..08b782e40 100644
--- a/docs/reference/ds.metadata.html
+++ b/docs/reference/ds.metadata.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.mice.html b/docs/reference/ds.mice.html
index 01ad1b4bb..4435d2c58 100644
--- a/docs/reference/ds.mice.html
+++ b/docs/reference/ds.mice.html
@@ -25,7 +25,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.names.html b/docs/reference/ds.names.html
index 034da93ce..2cbc5febb 100644
--- a/docs/reference/ds.names.html
+++ b/docs/reference/ds.names.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.ns.html b/docs/reference/ds.ns.html
index ed8736112..4542ab75f 100644
--- a/docs/reference/ds.ns.html
+++ b/docs/reference/ds.ns.html
@@ -19,7 +19,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.numNA.html b/docs/reference/ds.numNA.html
index 7afe0ddd1..ced8a0da9 100644
--- a/docs/reference/ds.numNA.html
+++ b/docs/reference/ds.numNA.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.qlspline.html b/docs/reference/ds.qlspline.html
index db4f9d0d9..71b503c1b 100644
--- a/docs/reference/ds.qlspline.html
+++ b/docs/reference/ds.qlspline.html
@@ -20,7 +20,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.quantileMean.html b/docs/reference/ds.quantileMean.html
index 4039c6466..0f9781a5c 100644
--- a/docs/reference/ds.quantileMean.html
+++ b/docs/reference/ds.quantileMean.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.rBinom.html b/docs/reference/ds.rBinom.html
index 290662862..933ce5315 100644
--- a/docs/reference/ds.rBinom.html
+++ b/docs/reference/ds.rBinom.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.rNorm.html b/docs/reference/ds.rNorm.html
index dc4f07f6b..eda7910f8 100644
--- a/docs/reference/ds.rNorm.html
+++ b/docs/reference/ds.rNorm.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.rPois.html b/docs/reference/ds.rPois.html
index 9ca4cc654..3127b3bb3 100644
--- a/docs/reference/ds.rPois.html
+++ b/docs/reference/ds.rPois.html
@@ -19,7 +19,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.rUnif.html b/docs/reference/ds.rUnif.html
index 69842261f..1008dc8b4 100644
--- a/docs/reference/ds.rUnif.html
+++ b/docs/reference/ds.rUnif.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.ranksSecure.html b/docs/reference/ds.ranksSecure.html
index 1615a37f0..346d484aa 100644
--- a/docs/reference/ds.ranksSecure.html
+++ b/docs/reference/ds.ranksSecure.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.rbind.html b/docs/reference/ds.rbind.html
index dce51b5a4..2f68e9a88 100644
--- a/docs/reference/ds.rbind.html
+++ b/docs/reference/ds.rbind.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.reShape.html b/docs/reference/ds.reShape.html
index 8ac2b2d1f..e91469c7f 100644
--- a/docs/reference/ds.reShape.html
+++ b/docs/reference/ds.reShape.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.recodeLevels.html b/docs/reference/ds.recodeLevels.html
index 490a2dbc0..70c5d8d19 100644
--- a/docs/reference/ds.recodeLevels.html
+++ b/docs/reference/ds.recodeLevels.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.recodeValues.html b/docs/reference/ds.recodeValues.html
index 3e0eb20df..6a047e4c0 100644
--- a/docs/reference/ds.recodeValues.html
+++ b/docs/reference/ds.recodeValues.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.rep.html b/docs/reference/ds.rep.html
index fe92d5ba7..cff475188 100644
--- a/docs/reference/ds.rep.html
+++ b/docs/reference/ds.rep.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.replaceNA.html b/docs/reference/ds.replaceNA.html
index 7a546c6dc..79fb2aa63 100644
--- a/docs/reference/ds.replaceNA.html
+++ b/docs/reference/ds.replaceNA.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.rm.html b/docs/reference/ds.rm.html
index c840b5acc..4685a78f2 100644
--- a/docs/reference/ds.rm.html
+++ b/docs/reference/ds.rm.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.rowColCalc.html b/docs/reference/ds.rowColCalc.html
index 0672f35e5..24460263e 100644
--- a/docs/reference/ds.rowColCalc.html
+++ b/docs/reference/ds.rowColCalc.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.sample.html b/docs/reference/ds.sample.html
index 209305335..c3832a02e 100644
--- a/docs/reference/ds.sample.html
+++ b/docs/reference/ds.sample.html
@@ -19,7 +19,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.scatterPlot.html b/docs/reference/ds.scatterPlot.html
index 292c74600..a9017b4f2 100644
--- a/docs/reference/ds.scatterPlot.html
+++ b/docs/reference/ds.scatterPlot.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.seq.html b/docs/reference/ds.seq.html
index 256b2d3dd..f7a8ae1c8 100644
--- a/docs/reference/ds.seq.html
+++ b/docs/reference/ds.seq.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.setDefaultOpals.html b/docs/reference/ds.setDefaultOpals.html
index d08715b1b..b37d6871a 100644
--- a/docs/reference/ds.setDefaultOpals.html
+++ b/docs/reference/ds.setDefaultOpals.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.setSeed.html b/docs/reference/ds.setSeed.html
index b3a4ee331..86b102aff 100644
--- a/docs/reference/ds.setSeed.html
+++ b/docs/reference/ds.setSeed.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.skewness.html b/docs/reference/ds.skewness.html
index f08153d03..01818e3a5 100644
--- a/docs/reference/ds.skewness.html
+++ b/docs/reference/ds.skewness.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.sqrt.html b/docs/reference/ds.sqrt.html
index 48a50b9c5..16679f1b5 100644
--- a/docs/reference/ds.sqrt.html
+++ b/docs/reference/ds.sqrt.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.subset.html b/docs/reference/ds.subset.html
index 41d6610b1..9bcfb801a 100644
--- a/docs/reference/ds.subset.html
+++ b/docs/reference/ds.subset.html
@@ -19,7 +19,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.subsetByClass.html b/docs/reference/ds.subsetByClass.html
index 07cfd851a..8ac9d4a7c 100644
--- a/docs/reference/ds.subsetByClass.html
+++ b/docs/reference/ds.subsetByClass.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.summary.html b/docs/reference/ds.summary.html
index cc6212155..886a3681b 100644
--- a/docs/reference/ds.summary.html
+++ b/docs/reference/ds.summary.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.table.html b/docs/reference/ds.table.html
index ee65fbb16..c46ad065b 100644
--- a/docs/reference/ds.table.html
+++ b/docs/reference/ds.table.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.table1D.html b/docs/reference/ds.table1D.html
index 0fa5f1d6f..d7199dfaa 100644
--- a/docs/reference/ds.table1D.html
+++ b/docs/reference/ds.table1D.html
@@ -19,7 +19,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.table2D.html b/docs/reference/ds.table2D.html
index 3a37d0612..b2bfea29b 100644
--- a/docs/reference/ds.table2D.html
+++ b/docs/reference/ds.table2D.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.tapply.assign.html b/docs/reference/ds.tapply.assign.html
index 8157c3af0..d1ca8e8fa 100644
--- a/docs/reference/ds.tapply.assign.html
+++ b/docs/reference/ds.tapply.assign.html
@@ -19,7 +19,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.tapply.html b/docs/reference/ds.tapply.html
index 01ffac390..39c9f854f 100644
--- a/docs/reference/ds.tapply.html
+++ b/docs/reference/ds.tapply.html
@@ -19,7 +19,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.testObjExists.html b/docs/reference/ds.testObjExists.html
index 18d73d451..bc7e9edf8 100644
--- a/docs/reference/ds.testObjExists.html
+++ b/docs/reference/ds.testObjExists.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.unList.html b/docs/reference/ds.unList.html
index fa58b4b79..dfb459fac 100644
--- a/docs/reference/ds.unList.html
+++ b/docs/reference/ds.unList.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.unique.html b/docs/reference/ds.unique.html
index 1b1d2fdba..08d6ef9b1 100644
--- a/docs/reference/ds.unique.html
+++ b/docs/reference/ds.unique.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.var.html b/docs/reference/ds.var.html
index 7b8c2ce8a..68691eb1e 100644
--- a/docs/reference/ds.var.html
+++ b/docs/reference/ds.var.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/ds.vectorCalc.html b/docs/reference/ds.vectorCalc.html
index dbcf7e382..97fabde9e 100644
--- a/docs/reference/ds.vectorCalc.html
+++ b/docs/reference/ds.vectorCalc.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/extract.html b/docs/reference/extract.html
index f97db6542..fda0edaea 100644
--- a/docs/reference/extract.html
+++ b/docs/reference/extract.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/getPooledMean.html b/docs/reference/getPooledMean.html
index d29193d40..430364814 100644
--- a/docs/reference/getPooledMean.html
+++ b/docs/reference/getPooledMean.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/getPooledVar.html b/docs/reference/getPooledVar.html
index 0800aa8be..091ac32aa 100644
--- a/docs/reference/getPooledVar.html
+++ b/docs/reference/getPooledVar.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/glmChecks.html b/docs/reference/glmChecks.html
index 76843a09a..dc6829986 100644
--- a/docs/reference/glmChecks.html
+++ b/docs/reference/glmChecks.html
@@ -18,7 +18,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
diff --git a/docs/reference/index.html b/docs/reference/index.html
index 03bec3a0b..9b99643d5 100644
--- a/docs/reference/index.html
+++ b/docs/reference/index.html
@@ -17,7 +17,7 @@
dsBaseClient
- 7.0.0-9000
+ 7.0.0.9000
@@ -42,10 +42,6 @@