input $ x_selected_rows дает только последнюю выбранную строку - Shiny DT Package - PullRequest
0 голосов
/ 18 февраля 2020

Я использую пакет DT для разработки приложения. Идея состоит в том, чтобы позволить пользователю выбрать строки, для которых он / она хочет данные. Проблема в том, что я получаю только последнюю строку, выбранную пользователем, а НЕ ВСЕ. Вот часть кода, которую я использую -

     ui <- fluidPage(
  useShinyjs(),

  # Application title
  titlePanel("selectable Rows"),


  sidebarLayout(
    sidebarPanel(
      textInput("stationID",
                "SIDs",value = ""),
      actionBttn("goButton","Go!",color = "default",style = "fill",size = "lg"),

    actionBttn("selected","GetData!",color = "default",style = "fill",size = "lg"),
    uiOutput("download")

  ),


    mainPanel(
      width=6,
      DT::DTOutput("results")

    )
  )
)

server<-function(input, output, session){
  ts_info<-eventReactive(input$goButton,{
    read.table("waterData.csv",header = TRUE, stringsAsFactors = FALSE, sep = ",")

  })



  output$results<-DT::renderDT({
    ts_info()
  })



  selectRow<-reactive({

    ids<-input$results_rows_selected
    x1<-ts_info()[ids,]
    return(x1)
     })


  finalset<-eventReactive(input$selected,{
    PATHS<-paste(selectRow()$ts_path, collapse = ",")
    all_data<-read.table("DataRecord.csv",sep = ",", header = TRUE, stringsAsFactors = FALSE)
    data1<-subset(all_data, ts_path %in% PATHS)
    return(data1)
  })



  output$download <- renderUI({


    downloadButton("downloadData", "Download")

  })
  output$downloadData <- downloadHandler(
    filename = function() {

      paste("TSDataDownload",Sys.Date(),".csv",sep = "")


    },
    content = function(file) {
      write.csv(finalset(), file, row.names = FALSE)
    }
  )    

}

# Run the application 
shinyApp(ui = ui, server = server)

WaterData.csv выглядит как - enter image description here

DataRecord.csv выглядит как - enter image description here

«PATHS» содержит ts_path из последней выбранной строки и, следовательно, data1 содержит только данные, относящиеся к последней строке, а не все выбранные строки. Может ли кто-нибудь помочь, пожалуйста? Я потратил слишком много времени на это без какого-либо успеха. Спасибо.

...