2017-04-30 6 views
0

私の光り輝くアプリでは、ラジオボタンの値を変更した後にしか実行しないようにしたいのですが、これが初めてです。価値の最初の変化に反応させる方法はありますか?あなた以下rshinyの最初のボタンを押したときにのみ機能を実行します

+0

私はあなたが起こるしたいものを表示するために、最小限の例を追加することをお勧め:http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-再現可能な例 – Iain

答えて

3

observeEventが、私はあなたが行くと、公式サイトEvent handler上の関数定義を見て持っていることを助言するなどignoreInitonceとして引数を持っていることがわかります。私はまたライブラリをdisableという関数で追加しました。ここでは便利だと思います。

rm(list=ls()) 
library(shiny) 
library(shinyjs) 

ui <- fluidPage(
    useShinyjs(), 
    radioButtons("nums", "Will Execute only Once",c("1000" = 1000,"10000" = 10000), selected = 0), 
    plotOutput("Plot") 
) 

server <- function(input, output) { 
    v <- reactiveValues() 
    observeEvent(input$nums, { 
    v$data <- rnorm(input$nums) 
    },ignoreInit = TRUE, once = TRUE) 

    output$Plot <- renderPlot({ 
    if(is.null(v$data)){ 
     return() 
    } 
    disable('nums') 
    hist(v$data) 
    box() 
    }) 
} 

shinyApp(ui, server) 

enter image description here

関連する問題