我有一个涉及优化的项目,优化后的结果会以数据表的形式显示在UI中。但是,应该优化的值应该是可编辑的,以便用户可以尝试优化各种值。下面我有一个非常简单的示例。有一个带有预算的初始 Dataframe ,预算是为mrA和mrB分配的。现在,如果我想更改任何预算值,并且在单击更新按钮时,mrA和mrB列获得新值,该怎么办?
library(DT)
library(shiny)
library(tidyverse)
initial_budget = tibble(country = c('us', 'fr', 'de'),
budget = c(100, 200, 300))
ui <- fluidPage(
DT::dataTableOutput('allocated')
)
server <- function(input, output) {
output$allocated = DT::renderDataTable({
df = initial_budget
df = df %>% mutate(mrA = budget * 0.25,
mrB = budget * 0.75)
df
})
}
shinyApp(ui = ui, server = server)
1条答案
按热度按时间rqqzpn5f1#
下面是一个简短的演示,可能会有所帮助。
创建一个
reactiveVal
ue来存储你的预算(初始设置为initial_budget
)。创建一个
proxy
来操作数据表。使用observeEvent
可以跟踪编辑,然后更新reactive data.frame。当数据被修改时,额外的
observe
将重新计算其他值。