Haga que el objeto creado dentro de un objeto reactivo esté disponible para otro en brillante [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Establecer objeto global en Shiny 1 respuesta

Tengo una aplicación brillante en la que defino un objeto basado en controles deslizantes y creo undata.frame de eso. Esto se usa para crear un diagrama, debajo del cual me gustaría incluir una tabla de resumen. Mi problema es que el gráfico debe definirse dentro de un objeto reactivo para actualizar en función de los controles deslizantes, pero descubrí que cuando intenté acceder al objeto para imprimir un resumen dentro de unadiferent objeto reactivo, no se encontró.

Me gustaría no ejecutar el mismo código de cálculo dos veces solo para llevar el objeto al otro objeto reactivo. Mis dos ideas iniciales:

Intenté usarsave(object, file = "...") dentro del primer objeto reactivo y luego poniendoload(file = "...") dentro del segundo, pero no se actualiza.ensé en definir mi objeto fuera de mi reactivoplotOutput definición, pero estoy bastante seguro de que no se actualizará cuando se cambien las entradas del usuario; solo se mantendrá con el valor de la @ iniciinput configuración predeterminada del objeto.

Bueno, simplemente seguí adelante y probé la última idea, y ni siquiera llega tan lejos:

Lo puse antes deshinyServer(...) y no puede generar los datos porque mi llamada depende deinput y no sabe sobreinput en ese punto Lo puse después deshinyServer(...) pero antesrenderPlot(...) para tratar de hacer una especie de objeto "disponible globalmente" para todos los objetos de salida, y me regaña por intentar hacer algo que usainput fuera de una función reactiva.

Aquí hay un ejemplo para ilustrar, modificado de Shiny's "¡Hola, brillante!" ejempl:

ui.R

library(shiny)

# Define UI for application that plots random distributions 
shinyUI(pageWithSidebar(

  # Application title
  headerPanel("Hello Shiny!"),

  # Sidebar with a slider input for number of observations
  sidebarPanel(
    sliderInput("obs", 
                "Number of observations:", 
                min = 1,
                max = 1000, 
                value = 500)
  ),

  # Show a plot of the generated distribution
  mainPanel(
    plotOutput("distPlot"),
    tableOutput("summary")
  )
))

server.R

library(shiny)

# Define server logic required to generate and plot a random distribution
shinyServer(function(input, output) {

  output$distPlot <- renderPlot({

    # generate an rnorm distribution and plot it
    dist <- rnorm(input$obs)
    hist(dist)
  })

  output$summary <- renderTable({
    #dist <- rnorm(input$obs)
    summary <- table(data.frame(cut(dist, 10)))
  })
})

Si lo ejecutas tal cual,cut arrojará un error porque no sabe acerca dedist. Si descomenta la línea donde redefinimosdist como se hace enplotOutput, entonces funcionará.

Este es un código simple: el mío está bastante más involucrado y realmente preferiría no ejecutarlo dos veces solo para dar a conocer el mismo resultado a otra salida reactiva.

Sugerencias?

Respuestas a la pregunta(1)

Su respuesta a la pregunta