如何在 R Shiny 中实现对数据表的内联编辑
Posted
技术标签:
【中文标题】如何在 R Shiny 中实现对数据表的内联编辑【英文标题】:How to implement inline editing on datatables in R Shiny 【发布时间】:2015-02-22 13:45:56 【问题描述】:我正在运行一个 R Shiny 网络应用程序。我使用数据表来显示数据。但我想要表格单元格的内联编辑。我无法做到这一点。谁能指导我?
这是我的代码
# 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
我可能需要在选项列表中添加一些内容,但我找不到合适的。
【问题讨论】:
这个确实很有趣,我想听听其他人会怎么做。但是现在我会去使用 shinyBS 库及其通过 bsModal 的模态来链接将弹出并执行您想要的操作的依赖项... 有DT的编辑器原型here 【参考方案1】:除了@dracodoc 提出的DT 原型,另一个选择是使用rhandsontable package。
编辑:根据@hveig 和@Munawir 的cmets,现在附上了一段工作示例代码(改编自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 中实现对数据表的内联编辑的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Postgresql 中实现对复杂嵌套 JSONB 的全文搜索
如何在Shiny R中丢弃DT :: datatable上的用户编辑
使用 D3 和 Shiny 在 R 中实现 `identify()`