【发布时间】:2022-11-04 07:24:57
【问题描述】:
我正在构建一个闪亮的应用程序,我希望用户能够通过按下按钮写下对数据框的更改,并且我希望这些更改被存储并在数据框中可用。例如:
library("shiny")
data <- as.data.frame(diamonds)
data$comment <- NA
toChange <- data
ui <- fluidPage(
selectInput(inputId = "cut",
label = "Select Cut",
choices = unique(diamonds$cut),
selected = "Ideal"),
actionButton(inputId = "price",
label = "Write new price"),
DTOutput("tabOut")
)
server <- function(input,session, output) {
observeEvent(input$price, {
toChange[toChange$cut == input$cut, "price"] <- toChange[toChange$cut == input$cut, "price"] * 3
toChange[toChange$cut == input$cut, "comment"] <- paste0("updated: ", Sys.time())
output$tabOut <- renderDT({
toChange
}, filter = "top")
})
observeEvent(req(input$price == 0), {
output$tabOut <- renderDT({
data
}, filter = "top")
})
observeEvent(input$price, {
})
}
shinyApp(ui = ui, server = server)
在这种情况下,当我运行应用程序并按下“写入新价格”按钮时,我只会将它用于“剪切”选择器中最后选择的选项。但我希望它保留之前选择的值。
【问题讨论】:
标签: r shiny shiny-reactivity