在闪亮的问题中从rhandsontable输入

时间:2017-04-24 05:42:37

标签: r shiny rhandsontable

library(shiny)
library(rhandsontable)

ui = shinyUI(fluidPage(
  fluidRow(wellPanel(
    rHandsontableOutput("hot"),
    actionButton(inputId="enter",label="enter")
  ))
))


server=function(input,output){

  DF=data.frame(Code=c(1,2,3),Amount=c(NA,NA,NA))

  output$hot=renderRHandsontable(rhandsontable(DF,readOnly=F))

  observeEvent(input$enter, {
    DF=hot_to_r(input$hot)
    print(DF)
  })
}

shinyApp(ui = ui, server = server)

嗨,我想从闪亮的rhansontable输入。 但是,当列的单元格充满NA时,无法编辑单元格。 这些可以解决吗?感谢

当我改变像这样的数据类型时

output$hot=renderRHandsontable(rhandsontable(DF,readOnly=F) %>% hot_col(col = "Amount", type = "numeric"))

可以编辑单元格中的值。但是,当我使用'DF = hot_to_r(输入$ hot)'时,值似乎没有保存在DF中。

2 个答案:

答案 0 :(得分:3)

根据this链接,您必须将NA转换为字符。所以你需要做这样的事情:

 server=function(input,output){

    DF=data.frame(Code=c(1,2,3),Amount=as.character(c(NA,NA,NA)))

    output$hot=renderRHandsontable(rhandsontable(DF, readOnly = FALSE) %>%
                                     hot_col("Amount", type = "numeric"))

    observeEvent(input$enter, {
      DF=hot_to_r(input$hot)
      print(DF)
    })
  }

答案 1 :(得分:1)

将其添加到DF

  DF=data.frame(Code=c(1,2,3),Amount=c(NA,NA,NA))

  DF[is.na(DF)] <- ""