This function retrieves a SyncroSim Datasheet, either by calling the SyncroSim
console, or by directly querying the SsimLibrary database.
datasheet(
ssimObject,
name = NULL,
project = NULL,
scenario = NULL,
summary = NULL,
optional = FALSE,
empty = FALSE,
filterColumn = NULL,
filterValue = NULL,
lookupsAsFactors = TRUE,
sqlStatement = list(select = "SELECT *", groupBy = ""),
includeKey = FALSE,
forceElements = FALSE,
fastQuery = FALSE,
returnScenarioInfo = FALSE,
returnInvisible = FALSE
)
# S4 method for list
datasheet(
ssimObject,
name = NULL,
project = NULL,
scenario = NULL,
summary = NULL,
optional = FALSE,
empty = FALSE,
filterColumn = NULL,
filterValue = NULL,
lookupsAsFactors = TRUE,
sqlStatement = list(select = "SELECT *", groupBy = ""),
includeKey = FALSE,
forceElements = FALSE,
fastQuery = FALSE,
returnScenarioInfo = FALSE,
returnInvisible = FALSE
)
# S4 method for character
datasheet(
ssimObject,
name,
project,
scenario,
summary,
optional,
empty,
filterColumn,
filterValue,
lookupsAsFactors,
sqlStatement,
includeKey,
fastQuery,
returnScenarioInfo,
returnInvisible
)
# S4 method for SsimObject
datasheet(
ssimObject,
name = NULL,
project = NULL,
scenario = NULL,
summary = NULL,
optional = FALSE,
empty = FALSE,
filterColumn = NULL,
filterValue = NULL,
lookupsAsFactors = TRUE,
sqlStatement = list(select = "SELECT *", groupBy = ""),
includeKey = FALSE,
forceElements = FALSE,
fastQuery = FALSE,
returnScenarioInfo = FALSE,
returnInvisible = FALSE
)SsimLibrary, Project,
or Scenario object or list of objects.
Note that all objects in a list must be of the same type, and belong to
the same SsimLibrary
character or character vector. Sheet name(s). If NULL (default),
all datasheets in the ssimObject will be returned. Note that setting
summary=FALSE and name=NULL pulls all Datasheets, which is time
consuming and not generally recommended
numeric or numeric vector. One or more
Project ids
numeric or numeric vector. One or more
Scenario ids
logical or character. If TRUE (default) returns a data.frame of sheet names
and other info including built-in core SyncroSim Datasheets. If FALSE returns
data.frame or list of data.frames.
logical. If summary=TRUE and optional=TRUE returns
only scope, name and displayName. If summary=FALSE and optional=TRUE returns
all of the Datasheet's columns, including the optional columns. If
summary=TRUE, optional=FALSE (default), returns only those columns that are mandatory
and contain data (if empty=FALSE). Ignored if summary=FALSE, empty=FALSE
and lookupsAsFactors=FALSE
logical. If TRUE returns empty data.frames for each
Datasheet. Ignored if summary=TRUE Default is FALSE
character string. The column to filter a Datasheet by.
(e.g. "TransitionGroupID"). Note that to use the filterColumn argument,
you must also specify the filterValue argument. Default is NULL
character string or integer. The value to filter the
filterColumn by. To use the filterValue argument, you must also specify
the filterColumn argument. Default is NULL
logical. If TRUE (default) dependencies
returned as factors with allowed values (levels). Set FALSE to speed
calculations. Ignored if summary=TRUE
list returned by sqlStatement. SELECT and
GROUP BY SQL statements passed to SQLite database. Ignored if
summary=TRUE (optional)
logical. If TRUE include primary key in table. Default is
FALSE
logical. If FALSE (default) and name has a single element
returns a data.frame; otherwise returns a list of data.frames. Ignored if
summary=TRUE
logical. If TRUE, the request is optimized for
performance. Ignored if combined with summary, empty, or
sqlStatement flags. Default is FALSE
logical. If TRUE, returns the Scenario ID,
Scenario Name, Parent ID, and Parent Name columns with the
Scenario-scoped Datasheet. Does nothing if the Datasheet exists at the
Library or Project level. Default is FALSE
logical. If TRUE, returns columns that are
invisible in the User Interface (i.e., are only used and populated
internally by SyncroSim or the SyncroSim Package). Default is FALSE
If summary=TRUE returns a data.frame of Datasheet names
and other information, otherwise returns a data.frame or list of these.
If summary=TRUE or summary=NULL and name=NULL a data.frame describing the
Datasheets is returned. If optional=TRUE, columns include: scope, package,
name, displayName, isSingle, isOutput, data. data only displayed for
a SyncroSim Scenario. dataInherited and dataSource columns
added if a Scenario has dependencies. If optional=FALSE, columns include:
scope, name, displayName. All other arguments are ignored.
Otherwise, for each element in name a Datasheet is returned as follows:
If lookupsAsFactors=TRUE (default): Each column is given the correct
data type, and dependencies returned as factors with allowed values (levels).
A warning is issued if the lookup has not yet been set.
If empty=TRUE: Each column is given the correct data type. Fast (1 less
console command).
If empty=FALSE and lookupsAsFactors=FALSE: Column types are not checked,
and the optional argument is ignored. Fast (1 less console command).
If SsimObject is a list of Scenario or Project
objects (output from run, Scenario or
Project): Adds ScenarioID/ProjectID column if appropriate.
If Scenario/Project is a vector: Adds ScenarioID/ProjectID column as necessary.
If requested Datasheet has Scenario scope and contains info from more
than one Scenario: ScenarioID/ScenarioName/ScenarioParent columns
identify the Scenario by name, id, and parent (if a result Scenario).
If requested Datasheet has Project scope and contains info from more
than one Project: ProjectID/ProjectName columns identify the Project
by name and id
if (FALSE) {
# Install helloworldSpatial package from package server
addPackage("helloworldSpatial")
# Set the file path and name of the new SsimLibrary
myLibraryName <- file.path(tempdir(),"testlib_datasheet")
# Set the SyncroSim Session
mySession <- session()
# Create a new SsimLibrary with the example template from helloworldSpatial
myLibrary <- ssimLibrary(name = myLibraryName,
session = mySession,
package = "helloworldSpatial",
template = "example-library",
forceUpdate = TRUE)
# Set the Project and Scenario
myProject <- project(myLibrary, project = "Definitions")
myScenario <- scenario(myProject, scenario = "My Scenario")
# Get all Datasheet info for the Scenario
myDatasheets <- datasheet(myScenario)
# Return a list of data.frames (1 for each Datasheet)
myDatasheetList <- datasheet(myScenario, summary = FALSE)
# Get a specific Datasheet
myDatasheet <- datasheet(myScenario, name = "RunControl")
# Include primary key when retrieving a Datasheet
myDatasheet <- datasheet(myScenario, name = "RunControl", includeKey = TRUE)
# Return all columns, including optional ones
myDatasheet <- datasheet(myScenario, name = "RunControl", summary = TRUE,
optional = TRUE)
# Return Datasheet as an element
myDatasheet <- datasheet(myScenario, name = "RunControl", forceElements = TRUE)
myDatasheet$helloworldSpatial_RunControl
# Get a Datasheet without pre-specified values
myDatasheetEmpty <- datasheet(myScenario, name = "RunControl", empty = TRUE)
# If Datasheet is empty, do not return dependencies as factors
myDatasheetEmpty <- datasheet(myScenario, name = "RunControl", empty = TRUE,
lookupsAsFactors = FALSE)
# Optimize query
myDatasheet <- datasheet(myScenario, name = "RunControl", fastQuery = TRUE)
# Get specific SsimLibrary core Datasheet
myDatasheet <- datasheet(myLibrary, name = "core_Backup")
# Use an SQL statement to query a Datasheet
mySQL <- sqlStatement(
groupBy = c("ScenarioID"),
aggregate = c("MinimumTimestep"),
where = list(MinimumTimestep = c(1))
)
myAggregatedDatasheet <- datasheet(myScenario, name = "RunControl",
sqlStatement = mySQL)
}