【问题标题】:R Shiny Handsontable automatically updating function after changing a single cellR Shiny Handsontable 更改单个单元格后自动更新功能
【发布时间】: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)

【问题讨论】:

    标签: r shiny handsontable


    【解决方案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
    猜你喜欢
    • 2020-06-27
    • 2018-03-25
    • 2015-12-01
    • 2015-12-15
    • 2014-11-16
    • 1970-01-01
    • 1970-01-01
    • 2017-04-02
    • 2016-01-30
    相关资源
    最近更新 更多