| mwSharedValue {manipulateWidget} | R Documentation |
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.
mwSharedValue(expr = NULL)
expr |
Expression used to compute the value of the input. |
An Input object of type "sharedValue".
Other controls: mwCheckboxGroup,
mwCheckbox, mwDateRange,
mwDate, mwGroup,
mwNumeric, mwPassword,
mwRadio, mwSelectize,
mwSelect, mwSlider,
mwText
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))
)
}