値を計算して提示し、さらに高価な計算に同じ値を使用するShinyアプリケーションがあります。問題は、スクリプト全体の評価が終了した後にのみ出力が表示されることです。ここに簡単な例があります:残りのスクリプトが実行されるのを待つことなく出力を表示する方法Shiny
library(shiny)
ui <- fluidPage(
titlePanel("test"),
sidebarLayout(
sidebarPanel(
textInput("text_in","Enter text here",value = "This is text to process"),
actionButton("go", "Go")
),
mainPanel(
textOutput("first_text"),
textOutput("results")
)
)
)
# Define server logic
server <- function(input, output) {
num_letter<-eventReactive(input$go, {
nchar(input$text_in)})
output$first_text <- renderText(num_letter())
sec_calculation<-eventReactive(num_letter(), {
Sys.sleep(3)
num_letter()*num_letter()})
output$first_text <- renderText(num_letter())
output$results <- renderText(sec_calculation())
}
# Run the application
shinyApp(ui = ui, server = server)
私はSys.sleep
を追加したので、問題が分かりやすくなりました。私は第2のものを待つことなく最初の出力を得たいと思っています。
簡単な解決策は、アクションボタンで高価な計算をトリガーすることです。 – Jimbou
ありがとう、私は別のアクションボタンが含まれていないソリューションを探しています、私はユーザーが一度だけクリックしたい – Nooga