Могу ли я использовать эту функцию только один раз?

avatar
whh
9 августа 2021 в 01:59
50
0
1

Я хочу назвать функцию arcsinT в R блестящей. Функция arcsinT возвращает результат вычисления, картинку и вывод информации консоли. Я хочу отобразить всю эту информацию в пользовательском интерфейсе, который я разработал.

Я реализовал эту функцию, используя следующий код.

Но для этого я трижды использовал функцию arcsinT в серверной функции: один раз для сохранения результата вычисления, другой для вывода изображения и один раз для вывода информации консоли.

Есть ли способ выполнить мою функцию, просто вызвав функцию arcsinT один раз? Трехкратный вызов приведет к слишком низкой эффективности работы.

library(shiny)
library(astrochron)
data("modelA")



ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      selectInput('data','data',c("modelA")),
      actionButton(inputId = "run",label = "RUN")
    ),
    
    mainPanel(
      plotOutput("plot"),
      verbatimTextOutput("verb"),
    )
  )
)

server <- function(input, output, session) {
  
  rv <- reactiveValues(modelA = modelA)
  
  observeEvent(input$run,
               {
      
                 rv[['results']] <- arcsinT(isolate(rv[[input$data]]),genplot = T)
                 output$plot <- renderPlot(arcsinT(isolate(rv[[input$data]]),genplot = T))
                 output$verb <- renderPrint(m <- arcsinT(isolate(rv[[input$data]]),genplot = T))
               }
  )
  
}

shinyApp(ui, server)
Источник

Ответы (0)