R Shiny, применить реализованную функцию к данным, взятым в качестве входных данных - PullRequest
0 голосов
/ 09 июля 2019

Я хотел бы реализовать приложение, которое принимает файл .csv в качестве входных данных (пользователь выбирает файл со своего компьютера), а затем я хочу взять этот файл в качестве параметра в функции "f", которую я реализовал ранее.

Я могу дать вам ui.R и server.R

ui.R

library(shiny)

shinyUI(fluidPage(
  sidebarLayout(
    sidebarPanel(
      fileInput("file",
                "Put your portfolio data here",
                accept=c(".csv")
                )
    ),

    mainPanel(tableOutput("table"))
  )

))

server.R

library(shiny)



shinyServer(function(input, output) {

    data <- reactive({
      file1 <- input$file
      if(is.null(file1)){return()} 
      read.csv2(file=file1$datapath)
    })


    #to view the data    
    output$table <- renderTable({
      if(is.null(data())){return ()}
      data()
    })

})

Наконец, моя функция "f" должна выдавать файл .csv в качестве вывода.

1 Ответ

0 голосов
/ 09 июля 2019

ui.R

library(shiny)

shinyUI(fluidPage(
  sidebarLayout(
    sidebarPanel(
      fileInput("file",
                "Put your portfolio data here",
                accept=c(".csv")
                ),
      downloadButton(download_data.csv, "Download File")
    ),

    mainPanel(tableOutput("table"))
  )

))

server.R

shinyServer(function(input, output) {

    data <- reactive({
      file1 <- input$file
      if(is.null(file1)){return()} 
      read.csv2(file=file1$datapath)
    })


    #to view the data    
    output$table <- renderTable({
      if(is.null(data())){return ()}
      data()
    })

    # to download the tadata
    output$download_data.csv <- downloadHandler(

    filename = "download_data.csv",
    content = function(file){

      data <- data() # At this point you should have done the transformation 
                     # to the data

      write.csv(data, file, row.names = F)

    }

  )


})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...