У меня есть код, который добавляет данные в таблицу данных. Я хочу, чтобы логика удаляла последний ряд DT, когда я нажимал кнопку удаления. Я пробовал различные логики, но не работает. Может ли кто-нибудь помочь
library(shiny)
library(shinyjs)
fields <- c("fy","quarter","month", "due_date","actual_date")
###########################################
ui <- fluidPage(
# Application title
titlePanel("MCA Data Entry"),
# Sidebar with reactive inputs
sidebarLayout(
sidebarPanel(
textInput("fy","Financial Year"),
selectInput("quarter","Quarter",c("Q1","Q2","Q3","Q4")),
dateInput("month","Month of Account", format="MM, yyyy"),
dateInput("due_date", "Due date for submission", format="dd-mm-yyyy"),
dateInput("actual_date","Actual date of submission",format="dd-mm-yyyy"),
actionButton("save","Add"),
actionButton("reset","Delete")
),
# a table of reactive outputs
mainPanel(
mainPanel(
DT::dataTableOutput("responses", width = 600), tags$hr()
)
)
)
)
server <- function(input, output,session) {
#create a data frame called responses
saveData <- function(data) {
data <- data.frame(
fy=data["fy"],
quarter=data["quarter"],
month=as.Date(as.numeric(data[["month"]]),"1970-01-01"),
due_date=as.Date(as.numeric(data[["due_date"]]),"1970-01-01"),
actual_date=as.Date(as.numeric(data[["actual_date"]]),"1970-01-01")
)
if (exists("responses")) {
responses <<- rbind(responses, data)
} else {
responses <<- data
}
}
loadData <- function() {
if (exists("responses")) {
responses
}
}
# Whenever a field is filled, aggregate all form data
#formData is a reactive function
formData <- reactive({
data <- sapply(fields, function(x) input[[x]])
data
print(data)
})
# When the Save button is clicked, save the form data
observeEvent(input$save, {
saveData(formData())
},priority=1)
# Show the previous responses
# (update with current response when save is clicked)
output$responses <- DT::renderDataTable({
input$save
datatable(loadData(),rownames=FALSE,options = list(sDom = '<"top"><"bottom">'))
})
}
shinyApp(ui,server)
Я хочу удалить последнюю строку, когда я нажимаю кнопку удаления, или, если это невозможно, удалить всю таблицу и начать заново. Я пробовал различные логики, эти логики могли удалять данные, а не строку как таковую. Пустые строки остаются после удаления через мою логику.