ds.isValid: Checks if a server-side object is valid

View source: R/ds.isValid.R

ds.isValidR Documentation

Checks if a server-side object is valid

Description

Checks if a vector or table structure has a number of observations equal to or greater than the threshold set by DataSHIELD.

Usage

ds.isValid(x = NULL, datasources = NULL)

Arguments

x

a character string specifying the name of a vector, dataframe or matrix.

datasources

a list of DSConnection-class objects obtained after login. If the datasources argument is not specified the default set of connections will be used: see datashield.connections_default.

Details

In DataSHIELD, analyses are possible only on valid objects to ensure the output is not disclosive. This function checks if an input object is valid. A vector is valid if the number of observations is equal to or greater than a set threshold. A factor vector is valid if all its levels (categories) have a count equal or greater than the set threshold. A data frame or a matrix is valid if the number of rows is equal or greater than the set threshold.

Server function called: isValidDS

Value

ds.isValid returns a boolean. If it is TRUE input object is valid, FALSE otherwise.

Author(s)

DataSHIELD Development Team

Examples

## Not run: 

  ## Version 6, for version 5 see the Wiki
  
  # connecting to the Opal servers

  require('DSI')
  require('DSOpal')
  require('dsBaseClient')

  builder <- DSI::newDSLoginBuilder()
  builder$append(server = "study1", 
                 url = "http://192.168.56.100:8080/", 
                 user = "administrator", password = "datashield_test&", 
                 table = "CNSIM.CNSIM1", driver = "OpalDriver")
  builder$append(server = "study2", 
                 url = "http://192.168.56.100:8080/", 
                 user = "administrator", password = "datashield_test&", 
                 table = "CNSIM.CNSIM2", driver = "OpalDriver")
  builder$append(server = "study3",
                 url = "http://192.168.56.100:8080/", 
                 user = "administrator", password = "datashield_test&", 
                 table = "CNSIM.CNSIM3", driver = "OpalDriver")
  logindata <- builder$build()
  
  connections <- DSI::datashield.login(logins = logindata, assign = TRUE, symbol = "D") 
  
  # Check if the dataframe assigned above is valid
  ds.isValid(x = 'D',
             datasources = connections) #all servers are used
  ds.isValid(x = 'D',
             datasources = connections[2]) #only the second server is used (study2)
 
  # clear the Datashield R sessions and logout
  datashield.logout(connections)


## End(Not run)


datashield/dsBaseClient documentation built on May 16, 2023, 10:19 p.m.