私はあなたが、たとえばactionButton
がクリックされたときにreactive
を変更したい数えます。この目的のために、reactiveValues
を使用します。あなたはobserve
またはobserveEvent
のようなオブザーバ内のreactiveValue
を変更することができます。
この単純な例をチェックアウト:
summarized <- data.frame(id = 1:20, group = letters[1:4], TY_COMP = runif(20), LY_COMP = runif(20))
library(shiny)
ui <- fluidPage(
verbatimTextOutput("text"),
actionButton("btn", "Add the 'cac' column to summarized")
)
server <- function(input, output){
rv <- reactiveValues(summarized = summarized)
output$text <- renderPrint(rv$summarized)
observeEvent(input$btn, {
rv$summarized$cac <- summarized$TY_COMP/summarized$LY_COMP - 1
})
summarized_mod <- reactive({
summarized()$TY_COMP/summarized()$LY_COMP-1
})
}
shinyApp(ui, server)
別のオプションは、追加の列を持っている別のreactive
を作成することです。これは使用できますが、ユースケースによっては、最初の解決策をお勧めします。
例:
summarized <- data.frame(id = 1:20, group = letters[1:4], TY_COMP = runif(20), LY_COMP = runif(20))
library(shiny)
ui <- fluidPage(
verbatimTextOutput("text1"),
verbatimTextOutput("text2")
)
server <- function(input, output){
output$text1 <- renderPrint(summarized_orig())
output$text2 <- renderPrint(summarized_mod())
summarized_orig <- reactive({
summarized
})
summarized_mod <- reactive({
df <- summarized_orig()
df$cac <- summarized_orig()$TY_COMP/summarized_orig()$LY_COMP - 1
df
})
}
shinyApp(ui, server)
出典
2017-12-14 11:18:20
GyD