2016-09-27 13 views
1

imは光るアプリで作業しています。 私がしようとしていること:2つの異なるアクションボタンのアクティブ化の時間順をベクターに「記録」したいと思います。Rシャイニー:2つのアクションボタンを持つベクトルを定義する

たとえば、button1(赤)を2回押してからbutton2(黒)を1回押すと、もう一度button1(赤)を押す=>ベクトルは次のようになります。col = c( "red" 「赤」、「黒」、「赤」)。

私はこれまでやった(さまざまなバリエーションがたくさんで)これは何:

col <- NULL observeEvent(input$rot, {col<-c(col,"red")}) observeEvent(input$schwarz, {col<-c(col,"black")}

入力$腐ウント入力$シュワルツは、アクションボタンの名前です。だから私は、ボタンの1つが押されるたびに、それぞれの色がベクトルに追加されるべきだと考えました。しかし、何も起こりません... もちろん、私はアプリケーションにベクトルcolを貼り付けます、それは間違いなく問題です。

誰かがアイデアを持っていれば素晴らしいことでしょう。 おかげ

答えて

2

あなたは、サーバー側でベクトルcolを保存するためにreactiveValuesを使用することができます。

geschichte <- reactiveValues(col = NULL) 

その後、geschichte$colを介して、またはgeschichte[["col"]]を経由して反応性コンテキスト内でそれにアクセスし、単にgeschichteが通常であるかのように上書きすることができますリスト:

observeEvent(input$rot, { 
    geschichte$col <- c(geschichte$col, "red") 
    }) 

全例:

library(shiny) 
rm(ui) ; rm(server) 

ui <- fluidPage(
    actionButton("rot", "Red"), 
    actionButton("schwarz", "Black"), 
    br(), 
    textOutput("col") 
) 

server <- function(input, output) { 

    geschichte <- reactiveValues(col = NULL) 

    observeEvent(input$rot, { 
    geschichte$col <- c(geschichte$col, "red") 
    }) 

    observeEvent(input$schwarz, { 
    geschichte$col <- c(geschichte$col, "black") 
    }) 

    output$col <- renderText({ 
    geschichte$col 
    }) 
} 

shinyApp(ui, server) 

enter image description here

+1

パーフェクト!どうもありがとうございます。私も反応的にそれをやろうとしましたが、私は明らかに手がかりがなく、時間が費やされています。ありがとう –

関連する問題