【问题标题】:Is there any way to download a data into a particular folder in R shiny?有没有办法将数据下载到 R Shiny 中的特定文件夹中?
【发布时间】:2020-01-31 17:53:20
【问题描述】:

我正在尝试将 .csv 格式的数据框下载到特定文件夹中。但就我而言,当我点击下载按钮时,数据会下载到 C 盘的“下载”文件夹中。

library(shiny)

# Define UI for data download app ----
ui <- fluidPage(

  # App title ----
  titlePanel("Downloading Data"),

  # Sidebar layout with input and output definitions ----
  sidebarLayout(

    # Sidebar panel for inputs ----
    sidebarPanel(

      # Input: Choose dataset ----
      selectInput("dataset", "Choose a dataset:",
                  choices = c("rock", "pressure", "cars")),

      # Button
      downloadButton("downloadData", "Download")

    ),

    # Main panel for displaying outputs ----
    mainPanel(

      tableOutput("table")

    )

  )
)

# Define server logic to display and download selected file ----
server <- function(input, output) {

  # Reactive value for selected dataset ----
  datasetInput <- reactive({
    switch(input$dataset,
           "rock" = rock,
           "pressure" = pressure,
           "cars" = cars)
  })

  # Table of selected dataset ----
  output$table <- renderTable({
    datasetInput()
  })

  # Downloadable csv of selected dataset ----
  output$downloadData <- downloadHandler(
    filename = function() {
      paste(input$dataset, ".csv", sep = "")
    },
    content = function(file) {
      write.csv(datasetInput(), file, row.names = FALSE)
    }
  )

}

# Create Shiny app ----
shinyApp(ui, server)

我也尝试了相同的情节。我使用file.copy() 将文件保存到所需位置,但它也无法正常工作。

【问题讨论】:

标签: r shiny


【解决方案1】:

如果您想将文件保存到所需的位置,我认为这个命令应该可以工作: output$downloadData <- downloadHandler( filename = function() { paste(setwd(),input$dataset, ".csv", sep = "")

函数 setwd() 允许您编写路径。因此,将您的文件夹放在 () 之间,并使用 getwd() 注意您的实际工作目录。 希望它会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-19
    • 2020-07-31
    • 1970-01-01
    • 2018-02-22
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    相关资源
    最近更新 更多