| SharedData {crosstalk} | R Documentation | 
Shared data frame
Description
An R6 class that represents a shared data frame, or sufficiently data frame-like object.
The primary use for SharedData is to be passed to Crosstalk-compatible
widgets in place of a data frame. Each SharedData$new(...) call makes
a new "group" of widgets that link to each other, but not to widgets in other
groups. You can also use a SharedData object from Shiny code in order
to react to filtering and brushing from non-widget visualizations (like
ggplot2 plots).
Methods
Public methods
Method new()
Usage
SharedData$new( data, key = NULL, group = createUniqueId(4, prefix = "SharedData") )
Arguments
- data
- A data frame-like object, or a Shiny reactive expression that returns a data frame-like object. 
- key
- Character vector or one-sided formula that indicates the name of the column that represents the key or ID of the data frame. These must be unique, and ideally will be something intrinsic to the data (a proper ID) rather than a transient property like row index. - If - NULL, then- row.names(data)will be used.
- group
- The "identity" of the Crosstalk group that widgets will join when you pass them this - SharedDataobject. In some cases, you will want to have multiple independent- SharedDataobjects link up to form a single web of widgets that all share selection and filtering state; in those cases, you'll give those- SharedDataobjects the same group name. (One example: in Shiny, ui.R and server.R might each need their own- SharedDatainstance, even though they're intended to represent a single group.)
Method origData()
Return the data frame that was used to create this
SharedData instance. If a reactive expression, evaluate the
reactive expression. Equivalent to SharedData$data(FALSE, FALSE,
FALSE).
Usage
SharedData$origData()
Method groupName()
Returns the value of group that was used to create
this instance.
Usage
SharedData$groupName()
Method key()
Returns the vector of key values. Filtering is not applied.
Usage
SharedData$key()
Method data()
Return the data (or read and return the data if the data is a Shiny reactive expression).
When running in Shiny, calling data() is a reactive operation that
will invalidate if the selection or filter change (assuming that
information was requested), or if the original data is a reactive
expression that has invalidated.
Usage
SharedData$data(withSelection = FALSE, withFilter = TRUE, withKey = FALSE)
Arguments
- withSelection
- If 'TRUE', add a - selection_column with logical values indicating which rows are in the current selection, or- NAif no selection is currently active.
- withFilter
- If 'TRUE' (the default), only return rows that are part of the current filter settings, if any. 
- withKey
- If 'TRUE', add a - key_column with the key values of each row (normally not needed since the key is either one of the other columns or else just the row names).
Method selection()
Get or set the current selection in the client.
If called without arguments, returns a logical vector of rows that are
currently selected (brushed), or NULL if no selection exists.
Intended to be called from a Shiny reactive context, and invalidates
whenever the selection changes.
If called with one or two arguments, sets the selection based on the given value indirectly, by sending the value to the web browser (assumes an active Shiny app or Shiny R Markdown document).
Usage
SharedData$selection(value, ownerId = "")
Arguments
- value
- If provided, a logical vector of 'nrow(origData())' length, indicating which rows are currently selected (brushed). 
- ownerId
- Set this argument to the 'outputId' of a widget if conceptually that widget "initiated" the selection (prevents that widget from clearing its visual selection box, which is normally cleared when the selection changes). For example, if setting the selection based on a [shiny::plotOutput()] brush, then 'ownerId' should be the 'outputId' of that 'plotOutput'. 
Method clearSelection()
Clears the selection indirectly, by sending an instruction to the client that it should do so.
Usage
SharedData$clearSelection(ownerId = "")
Arguments
- ownerId
- See the [SharedData$selection()] method. 
Method clone()
The objects of this class are cloneable with this method.
Usage
SharedData$clone(deep = FALSE)
Arguments
- deep
- Whether to make a deep clone.