在下面这些代码中,我想将输出$ click带到全局环境。
最终,我想直接使用选定的值。
即使Shiny App终止,是否可以使用x,y形式的鼠标选择的值?
ui <- fluidPage(
radioButtons("plotType", "Plot Type:", choices = c("ggplotly", "plotly")),
plotlyOutput("plot"
),
verbatimTextOutput("click"),
verbatimTextOutput("brush")
)
server <- function(input, output, session) {
output$plot <- renderPlotly({
# use the key aesthetic/argument to help uniquely identify selected observations
key <- row.names(mtcars)
if (identical(input$plotType, "ggplotly")) {
p <- ggplot(data, aes(x = c(1:nrow(data)) , y = y, colour = factor(WF_ID), key = LOT_CODE)) +
geom_line(color="black") + geom_point()
ggplotly(p) %>% layout(dragmode = "select")
} else {
plot_ly(data, x = ~c(1:nrow(data)), y = ~y, key = ~data$LOT_CODE, mode = 'lines+markers') %>%
layout(dragmode = "select")
}
})
output$click <- renderPrint({
d <- event_data("plotly_click")
if (is.null(d)) "Click events appear here (double-click to clear)" else d
})
}
答案 0 :(得分:1)
正如@HubertL所提到的,在为变量赋值时可以使用<<-
。如果您想将某些值保存到变量中供以后使用,这意味着,在您的应用终止之后,您可以使用此<<-
opreator。
但是,如果您想在应用正在运行时创建一个全局变量,则可以使用reactiveValues()。在reactiveValues()
中声明global.R
将使您链接到.R
的每个ShinyApp
文件都可以看到它们。然后,您只需将observer()
或reactive()
output$click
<-
分配到reactiveValues()
即可。reactiveValues()
。
此外,使用output$click
将保持&#34;反应性&#34; output$click
。如果reactiveValues()
发生更改,{{1}}将更改并触发依赖项。