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中。
答案 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)] <- ""