首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在shiny中编辑rhandsontable

在shiny中编辑rhandsontable
EN

Stack Overflow用户
提问于 2021-04-29 23:03:38
回答 1查看 24关注 0票数 0

我试着根据a和b的值更新我的rhansontable,但是没有更新。基本上,c列应该是a列划分为b列。

代码语言:javascript
复制
library(shiny)
library(rhandsontable)

did_recalc <- FALSE

ui <- fluidPage(
  # tableOutput(table1),
  rHandsontableOutput('table'),
  textOutput('result')
)

server <- function(input,output,session)({
  # values <- reactiveValues(data=as.data.frame(runif(2)))
  INR = c(0)
  `Price` = c(0)
  Total = as.numeric(INR / `Price`)
  
  values <- data.frame(a = INR, b = `Price`, c = Total)
  
  observe({
    if(!is.null(input$table))
      values <- hot_to_r(input$table)
  })
  
  
  
  output$table <- renderRHandsontable({
    rhandsontable(values)
  })
  
}) 

shinyApp(ui = ui, server = server)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-29 23:15:54

您需要确保保存数据的对象(values)是反应性的。这将强制使用它的任何内容正确更新。

代码语言:javascript
复制
library(shiny)
library(rhandsontable)
library(dplyr)

ui <- fluidPage(
    rHandsontableOutput('table')
)

server <- function(input,output,session)({
    
    values <- reactiveVal(value = data.frame(INR = runif(2), 
                                             Price = runif(2)))
    
    output$table <- renderRHandsontable({
        values() %>% 
            mutate(Total = INR/Price) %>% 
            rhandsontable() %>% 
            hot_col("Total", readOnly = TRUE)
    })
    
    observe({
        if(!is.null(input$table))
            values(hot_to_r(input$table))
    })
    
}) 

shinyApp(ui = ui, server = server)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67319988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档