R: Shared Value

mwSharedValue {manipulateWidget} | R Documentation

## Shared Value

### Description

This function creates a virtual input that can be used to store a dynamic shared variable that is accessible in inputs as well as in output.

### Usage

    mwSharedValue(expr = NULL)

### Arguments

`expr` | Expression used to compute the value of the input.

### Value

An Input object of type "sharedValue".

### See Also

Other controls: `mwCheckboxGroup`, `mwCheckbox`, `mwDateRange`, `mwDate`, `mwGroup`, `mwNumeric`, `mwPassword`, `mwRadio`, `mwSelectize`, `mwSelect`, `mwSlider`, `mwText`

### Examples

    if (require(plotly)) {
      # Plot the characteristics of a car and compare with the average values for
      # cars with same number of cylinders.
      # The shared variable 'subsetCars' is used to avoid subsetting multiple times
      # the data: this value is updated only when input 'cylinders' changes.
      colMax <- apply(mtcars, 2, max)

      plotCar <- function(cardata, carName) {
        carValues <- unlist(cardata[carName, ])
        carValuesRel <- carValues / colMax

        avgValues <- round(colMeans(cardata), 2)
        avgValuesRel <- avgValues / colMax

        plot_ly() %>%
          add_bars(x = names(cardata), y = carValuesRel, text = carValues,
                   hoverinfo = c("x+text"), name = carName) %>%
          add_bars(x = names(cardata), y = avgValuesRel, text = avgValues,
                   hoverinfo = c("x+text"), name = "average") %>%
          layout(barmode = 'group')
      }

      c <- manipulateWidget(
        plotCar(subsetCars, car),
        cylinders = mwSelect(c("4", "6", "8")),
        subsetCars = mwSharedValue(subset(mtcars, cylinders == cyl)),
        car = mwSelect(choices = row.names(subsetCars))
      )
    }

[Package manipulateWidget version 0.10.0 Index]