R Shiny Handsontable 更改单个单元格后自动更新功能
Posted
技术标签:
【中文标题】R Shiny Handsontable 更改单个单元格后自动更新功能【英文标题】:R Shiny Handsontable automatically updating function after changing a single cell 【发布时间】:2020-04-13 21:29:05 【问题描述】:我正在尝试熟悉rhandsontable
包。所以我尝试了一些我认为应该很容易但我找不到解决方案的方法。思路是这样的:
我正在创建一个带有随机数和文本框的数据框。应显示数据框第 1 列的平均值。此外,一旦我更改数据框中单元格的值,该数字就应该更新。
我的代码:
ui <- fluidPage(
textOutput("num"),
rHandsontableOutput(outputId="frame")
)
server <- function(input, output, session)
datavalue <- reactiveValues(data=df)
observeEvent(input$frame$changes$changes,
mean_col1 <- mean(datavalue$data[[1]][1:10])
)
output$num <- renderText(
mean(datavalue$data[[1]][1:10])
)
output$frame <- renderRHandsontable(
rhandsontable(datavalue$data)
)
shinyApp(ui = ui, server = server)
【问题讨论】:
【参考方案1】:我认为您想在发生更改时使用hot_to_r
将handsontable 转换为R 对象。发生这种情况时,您可以更新您的 reactiveValue
datavalue$data
,您的 output$num
也将使用新平均值来解释此更改。
尝试在您的 observeEvent
中使用它:
datavalue$data <- hot_to_r(input$frame)
作为替代方案,您可以按如下方式进行一般observe
:
observe(
req(input$frame)
datavalue$data <- hot_to_r(input$frame)
)
【讨论】:
这有帮助。我尝试了替代解决方案,它奏效了。 太棒了!如果有帮助,请随时upvote or accept answer。以上是关于R Shiny Handsontable 更改单个单元格后自动更新功能的主要内容,如果未能解决你的问题,请参考以下文章
Shiny modal 中的handsontable 无法正确渲染