在闪亮的应用程序中删除 DT 数据行 table
Delete row of DT data table in Shiny app
我有一个闪亮的应用程序,可以在 DT table 中显示数据帧数据。在应用程序中,我有一个按钮,单击该按钮将删除 selected 行。它第一次工作我 select 行并单击删除按钮,但再次单击后错误的行被删除并且任何以前删除的行重新出现。我假设这是因为它在我调用 DT::renderDataTable()
时重新加载数据框(从 csv)。
如何在从数据框中删除 selected 行后重新渲染 table?
这可以帮助您入门:
ui.R
library(shiny)
library(DT)
shinyUI(fluidPage(
titlePanel("Delete rows with DT"),
sidebarLayout(
sidebarPanel(
actionButton("deleteRows", "Delete Rows")
),
mainPanel(
dataTableOutput("table1")
)
)
))
server.R
library(shiny)
library(DT)
library(dplyr)
df <- data.frame(x = 1:10, y = letters[1:10])
shinyServer(function(input, output) {
values <- reactiveValues(dfWorking = df)
observeEvent(input$deleteRows,{
if (!is.null(input$table1_rows_selected)) {
values$dfWorking <- values$dfWorking[-as.numeric(input$table1_rows_selected),]
}
})
output$table1 <- renderDataTable({
values$dfWorking
})
})
我有一个闪亮的应用程序,可以在 DT table 中显示数据帧数据。在应用程序中,我有一个按钮,单击该按钮将删除 selected 行。它第一次工作我 select 行并单击删除按钮,但再次单击后错误的行被删除并且任何以前删除的行重新出现。我假设这是因为它在我调用 DT::renderDataTable()
时重新加载数据框(从 csv)。
如何在从数据框中删除 selected 行后重新渲染 table?
这可以帮助您入门:
ui.R
library(shiny)
library(DT)
shinyUI(fluidPage(
titlePanel("Delete rows with DT"),
sidebarLayout(
sidebarPanel(
actionButton("deleteRows", "Delete Rows")
),
mainPanel(
dataTableOutput("table1")
)
)
))
server.R
library(shiny)
library(DT)
library(dplyr)
df <- data.frame(x = 1:10, y = letters[1:10])
shinyServer(function(input, output) {
values <- reactiveValues(dfWorking = df)
observeEvent(input$deleteRows,{
if (!is.null(input$table1_rows_selected)) {
values$dfWorking <- values$dfWorking[-as.numeric(input$table1_rows_selected),]
}
})
output$table1 <- renderDataTable({
values$dfWorking
})
})