У меня есть следующее приложение:
...
selectInput("cars", "Pick a Car: ",
c("All" = "All Cars",
"Ford" = "Ford",
"Volvo" = "Volvo",
"Ferrari" = "Ferrari",
"Fiat" = "Fiat",
"Merc" = "Merc"))
)),
shinySaveButton("save", "Save file", "Save file as ...", filetype=list(csv="csv")),
DT::dataTableOutput('table1')
)
)
# Define server logic required to draw a histogram
server <- function(input, output, session) {
mtcars$car <- rownames(mtcars)
output$table1 <-renderDataTable({
mtcars %>%
filter(stringr::str_detect(car, as.character(input$cars)) | input$cars == 'All Cars')
})
observe({
volumes <- c("UserFolder"="~/Documents/R1/DwnLdWord/saves")
shinyFileSave(input, "save", roots=volumes, session=session)
fileinfo <- parseSavePath(volumes, input$save)
data <- input$table1_rows_all
if (nrow(fileinfo) > 0) {
write.csv(data, fileinfo$datapath)
}
})
}
# Run the application
shinyApp(ui = ui, server = server)
Когда я сохраняю статический набор данных (например, iris
или mtcars
), файл сохраняет фактические данные. Однако, как видно на изображениях, я хочу сохранить содержимое отфильтрованного DT.
Я думал, для этого input $ tableid_rows_all , но я получаю только случайные целые / числовые значения. У меня всегда были проблемы с этой ерундой, но я действительно хотел бы заставить ее работать, потому что это такая ценная функция.
Помощь
![resulting](https://i.stack.imgur.com/JAslA.png)