Добавление данных в существующую таблицу данных в R Shiny - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь использовать R.Shiny для создания приложения, в котором пользователь может сканировать существующую таблицу данных, а также добавлять в нее данные. Я попытался установить реактивный ввод как набор данных, а затем использовать rbind, чтобы объединить это с уже существующей таблицей. Я думаю, что проблема в основном с разделом сервера.

ui <- fluidPage(
  titlePanel="DataTable input",
  sidebarLayout(
    sidebarPanel(
      selectInput("A_new", "A", c("a", "b", "c")),
      textInput("B_new", "B:"),
      textInput("C_new", "C"),
      actionButton("save","Add"),
    ),
  mainPanel(
    column(3,
           selectInput("A",
                       "A:",
                       choices = c("All",
                                   unique(as.character(DT$A))))
    ),
    column(4,
           selectInput("B",
                       "B:",
                       choices = c("All",
                                   unique(as.character(DT$B))))
    ),
    column(5,
           selectInput("C",
                       "C:",
                       choices = c("C",
                                   unique(as.character(DT$C))))
    ),
    tableOutput("table1")
  )))



    server <- function(input, output){

     #Add new values to the table when "save" is used. 
      values <- reactiveValues()
      values$df <- DT

 df <- eventReactive(input$save, {
        # added input data to df
        newLine <- isolate(c(input$A_new, input$B_new, input$C_new))
        isolate(values$df <- rbind(as.matrix(values$df), unlist(newLine)))
      })

      #select table display using drop down menu.

       output$table1 <- renderDataTable({
         data <- df
        if (input$A != 'All') {
         data <- data[data$A == input$A,]
       }
       if (input$B != 'All') {
         data <- data[data$B == input$B,]
       }
       if (input$C != 'All') {
         data <- data[data$C == input$C,]
       }
      data
       })
    }
    shinyApp(ui, server)
...