2017-03-23 179 views
0

我想以某種方式使兩個輸入相等時,我按下一個Actionbutton。在我的Shiny Dashboard中有幾個選項卡,並且在一些選項卡中有重複的數據輸入。例如,在標籤1中我們有一個AGE的輸入,我們在標籤2中有相同的輸入。我想這樣做,如果我輸入一個年齡值並點擊「運行」(一個Actionbutton),它會自動生成另一個選項卡中的年齡等於當前選項卡中的年齡。R閃亮使兩個輸入等於

我真的很新的使用光澤,讓我在使用無功指令做了一些嘗試,但我不知道爲什麼它不工作:

reactive( 
if(input$runbutton==0){ 
input$numeric1=input$numeric2 
}) 

該代碼沒有任何影響它甚至不會返回錯誤。

+1

如何嘗試'updateNumericInput()'? –

回答

3

您應該使用updateNumericInput()來更改輸入的值。此外,使用observeEvent()來追蹤按鈕更有意義。這裏有一個簡單的示例應用程序

ui <- fluidPage(
    numericInput("numeric1","in1",1), 
    numericInput("numeric2","in2",2), 
    actionButton("runbutton", "set equal") 
) 

server <- function(input, output, session) { 
    observeEvent( input$runbutton, { 
     updateNumericInput(session, "numeric1", value=input$numeric2) 
    }) 
} 


shinyApp(ui=ui, server=server) 
+0

它的作品非常漂亮!非常感謝!我可以看到我們現在需要如何處理這些問題;但是如果沒有問題,我想知道兩件事情。首先,我們爲什麼要使用「會話」?我研究過它,但我找不到能真正告訴我它做什麼的事情。另外,'reactive'和'observeEvent'之間有什麼區別?看起來他們做同樣的事情,但observeEvent是唯一對我有意義的事情haha – BlueRhapsody

+1

我們必須使用會話,因爲'updateNumericInput'需要它。不僅僅如此。如果你是Shiny的新手,想要更好地理解'reactive'和'observeEvent',那麼查看[這些培訓視頻]可能會更好(https://www.rstudio.com/resources/webinars/shiny-開發人員會議/)。這是一個很大的話題,在評論中無法真正解決。 – MrFlick