如何将server.r引入全球环境?

时间:2017-01-24 00:02:31

标签: r shiny

在下面这些代码中,我想将输出$ 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

})

}

1 个答案:

答案 0 :(得分:1)

正如@HubertL所提到的,在为变量赋值时可以使用<<-。如果您想将某些值保存到变量中供以后使用,这意味着,在您的应用终止之后,您可以使用此<<- opreator。

但是,如果您想在应用正在运行时创建一个全局变量,则可以使用reactiveValues()。在reactiveValues()中声明global.R将使您链接到.R的每个ShinyApp文件都可以看到它们。然后,您只需将observer()reactive() output$click <-分配到reactiveValues()即可。reactiveValues()。 此外,使用output$click将保持&#34;反应性&#34; output$click。如果reactiveValues()发生更改,{{1}}将更改并触发依赖项。