Я использую пакет 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](https://i.stack.imgur.com/dXzVI.png)
DataRecord.csv выглядит как - ![enter image description here](https://i.stack.imgur.com/zPFkO.png)
«PATHS» содержит ts_path из последней выбранной строки и, следовательно, data1 содержит только данные, относящиеся к последней строке, а не все выбранные строки. Может ли кто-нибудь помочь, пожалуйста? Я потратил слишком много времени на это без какого-либо успеха. Спасибо.