如何在 R Shiny 中对数据表实现内联编辑 [英] How to implement inline editing on datatables in R Shiny
问题描述
我正在运行一个 R Shiny 网络应用程序.我使用数据表来显示数据.但我想要表格单元格的内联编辑.我无法做到这一点.有人可以指导我吗?
I am running an R Shiny web-app. I used datatables to show the data. But I want the inline editing of cell of the tables. I am unable to do that. Can any one guide me?
这是我的代码
# UI.R
fluidRow(
column(4,dataTableOutput("numericalBin")),
column(8,h1("numericalBin_Chart")))
)
<小时>
# Server.R
output$numericalBin <- renderDataTable({
mtcars
},options = list(
lengthChange=FALSE,
searching=FALSE,
autoWidth=TRUE,
paging=FALSE
))
我想编辑单元格.这是我想做的效果的链接:
https://editor.datatables.net/examples/inline-editing/simple.html一>
I want to edit cell. Here is the link I want to do the effect:
https://editor.datatables.net/examples/inline-editing/simple.html
我可能需要在选项列表中添加一些东西,但我找不到合适的.
I need something to add in option list maybe but I can not find the right one.
推荐答案
除了@dracodoc 提出的 DT 原型,另一个选择是使用 rhandsontable 包.
Apart from DT prototype proposed by @dracodoc, another option is using rhandsontable package.
根据@hveig 和@Munawir 的评论,现在附上了一段工作示例代码(改编自 rhandome 示例页面):
according to comments by @hveig and @Munawir, a piece of working example code is now attached (adapted from rhandome examples page):
library(shiny)
library(rhandsontable)
shinyApp(
shinyUI(
fluidRow(
rHandsontableOutput("hot")
)),
shinyServer(function(input, output, session) {
values = reactiveValues()
data = reactive({
if (!is.null(input$hot)) {
DF = hot_to_r(input$hot)
} else {
if (is.null(values[["DF"]]))
DF = mtcars
else
DF = values[["DF"]]
}
values[["DF"]] = DF
DF
})
output$hot <- renderRHandsontable({
DF = data()
if (!is.null(DF))
rhandsontable(DF, stretchH = "all")
})
})
)
这篇关于如何在 R Shiny 中对数据表实现内联编辑的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!