Контекст: У меня есть приложение, преобразующее данные в соответствии с выбором пользователя. Он создает несколько таблиц и графиков в процессе.
Цель: сохранить несколько объектов, созданных в процессе, в одну новую папку одним нажатием кнопки.
Предыдущие исследования: код ниже сохраняются объекты с использованием downloadHandler()
и некоторых функций, представленных здесь . Кажется, он не позволяет передавать несколько объектов в downloadHandler()
. Я знаю, что можно поместить эти объекты в список и затем сохранить его, но, если возможно, я бы хотел избежать этого и вместо этого получить несколько файлов (например, .txt или .png, ...)
Вот воспроизводимый пример с очень маленькими данными, использующими наборы данных, включенные в R (mtcars
и iris
).
library(shiny)
ui <- fluidPage(
downloadButton("save", "Save") # one click on this button to save df1 AND df2 tables in a new folder
)
server <- function(input, output) {
# my real app does multiple changes on datasets based on user choices
df1 = mtcars[1:10,]
df2 = iris[1:10,]
# Now I want to save df1 and df2 objects with 1 click on the "Save" button
output$save = downloadHandler(
filename = function(){ paste("example", ".txt", sep = " ") },
content = function(file) { write.table(df1, file) }
)
}
# Run the application
shinyApp(ui = ui, server = server)
Большое спасибо за вашу помощь и предложения!