首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在shiny How to create a DT table中,我可以同时添加行和删除行

在shiny中,可以使用DT包来创建交互式的数据表。要同时添加行和删除行,可以使用DT::datatable()函数结合DT::addRow()DT::removeRow()函数来实现。

下面是一个示例代码:

代码语言:txt
复制
library(shiny)
library(DT)

ui <- fluidPage(
  actionButton("addBtn", "添加行"),
  actionButton("removeBtn", "删除行"),
  DTOutput("table")
)

server <- function(input, output, session) {
  data <- data.frame(
    id = 1:5,
    name = c("John", "Amy", "Tom", "Emily", "Mike"),
    stringsAsFactors = FALSE
  )
  
  observeEvent(input$addBtn, {
    data <- addRow(data, name = "")
  })
  
  observeEvent(input$removeBtn, {
    selectedRows <- input$table_rows_selected
    if (length(selectedRows) > 0) {
      data <- removeRow(data, rows = selectedRows)
    }
  })
  
  output$table <- renderDT({
    datatable(data, editable = TRUE, selection = "multiple")
  })
}

shinyApp(ui, server)

在上述代码中,我们首先创建了一个包含"id"和"name"两列的数据框。然后,在UI部分,我们使用了两个动作按钮,一个用于添加行,一个用于删除行。在服务器端,我们使用observeEvent()函数来监听按钮的点击事件,并在点击时执行相应的操作。addRow()函数用于添加一行,removeRow()函数用于删除选中的行。最后,我们使用renderDT()datatable()函数来渲染和显示数据表。

这样,用户就可以通过点击"添加行"按钮来添加新的空行,通过选中行并点击"删除行"按钮来删除选中的行。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券