Release History

Image
Version Date Description
6.1.1 April 2021 A maintenance release for release 6.1, containing changes for known issues
6.1.0 October 2020 Adding new analytical and presentation functions
6.0.1 July 2020 Maintenance release including improvements on certain functions
6.0

May 2020

Addition of new analytical functions and the integration with DataSHIELD Interface (DSI)
5.1 January 2020 Minor new functionality added and some refactoring of existing code to make it more consistent
5.0 September 2019 Significant changes to functions, structure of packages, the version of R
4.0  May 2015 Added new analytical functions including glm, table, and other minor function updates
3.0.1 September 2014 Additional functionality and improvements to existing functions
3.0 August 2014 Additional functionality and improvements to existing functions
2.4.4 May 2014 Additional functionality
2.4.3 May 2014 Additional functionality
2.4.2 May 2014 Additional functionality
2.4.1 April 2014 Additional functionality
2.4.0 April 2014 Additional functionality
2.3 October 2013 Additional functionality
2.2 October 2013 Additional functionality
2.1 October 2013 Additional functionality
2.0 October 2013 Additional functionality 
1.3 May 2013 Initial proof of concept
1.2 May 2013 Initial proof of concept
1.1 May 2013 Initial proof of concept 
1.0 April 2013 Initial proof of concept

Previous release notes

Past Release Notes Changelog

Release Notes for v5.1 of DataSHIELD

Version 5.1.0 is a minor update to v5.0.0 with minor new functionality added and some refactoring of existing code to make it more consistent.

Changes from version 5.0.0 to version 5.1.0:

We have modified the ds.asNumeric and the ds.asInteger functions, to first convert an input object to a character and then to a numeric or integer. We found that in native R the function “as.numeric” (and similarly the function “as integer”) when is used to convert a variable of class factor to a variable of class numeric (or integer), it returns the underlying level codes of the factor instead of converting the actual values to numbers. For example it converts the factor vector (0 1 1 2 1 0 1 0 2 2 2 1) with Levels: 0 1 2, to the numeric vector (1 2 2 3 2 1 2 1 3 3 3 2). This behaviour occurs also in DataSHIELD, version <=5.0.0, through the ds.asNumeric or the ds.asInteger functions. The updated versions of ds.asNumeric and ds.asInteger functions in version 5.1.0, first convert an input object to a character and then to a numeric or integer.

Updated versions of the ds.glm and ds.glmSLMA functions to allow the non-intercept indicator “0” to be part of the formula argument.

ds.message: The implementation of the messageDS has been modified to ensure that it isn’t possible to unintentionally disclose information.

Extended tests coverage: additional tests have been implemented to increase the test coverage.

Added function ds.dataFrameFill. The purpose of ds.dataFrameFill is to add extra columns with missing values in a dataframe one for each variable is not included in the dataframe but is included in the relevant dataframe of another datasource.

Updated version of seq and unList support. The implementations of, at client-side, ds.seq and ds.unList, and at the server-side seqDS and unListDS have been reworked.

The use of the disclosure control parameter datashield.privacyLevel is being phased out. Use of datashield.privacyLevel has been replaced by use of default.nfilter.subset and default.nfilter.tab.

The default value of the ‘newobj’ argument, if unspecified, has been changed for the following functions:

ds.Boole

ds.asCharacter

ds.asDataMatrix

ds.asFactor

ds.asInteger

ds.asList

ds.asLogical

ds.asMatrix

ds.asNumeric

ds.assign

ds.c

ds.cbind

ds.changeRefGroup

ds.dataFrame

ds.dataFrameFill

ds.dataFrameSort

ds.dataFrameSubset

ds.exp

ds.lexis

ds.list

ds.log

ds.make

ds.matrix

ds.matrixDet

ds.matrixDiag

ds.matrixDimnames

ds.matrixInvert

ds.matrixMult

ds.matrixTranspose

ds.merge

ds.rNorm

ds.rPois

ds.rUnif

ds.rbind

ds.reShape

ds.recodeLevels

ds.recodeValues

ds.replaceNA

ds.rowColCalc

ds.seq

ds.tapply.assign

ds.unList

ds.vectorCalc

For the above functions the new default for ‘newobj’ is now the function’s base name, all lower case, followed by ‘_newobj’. For example the function ‘ds.dataFrameSubset' the value will be 'dataframesubset_newobj’.

* We removed ds.gee in v5.1.0.