如何从Rshiny应用程序中保存项目?

时间:2018-09-26 13:04:21

标签: r shiny shiny-server shiny-reactivity

我对R闪亮代码非常陌生。我想制作一个允许用户保存选择和项目的应用程序,以供以后使用。例如,假设我已上传文件并在ui中选择了输入。用户应该能够将工作保存在某处,以便他们明天可以再次打开该项目并继续工作。此应用程序将是基于本地计算机而不是服务器上的桌面。我尝试了书签选项,其中一切正常,但无法将项目作为一个整体保存在桌面应用中。

在Rshiny中,用户是否可以将所选内容另存为项目,然后再利用该项目继续工作?

任何帮助将不胜感激。

如何将以下应用保存为项目,然后允许用户访问环境中的.rds文件?

library(shiny)

ui <- function(request){
  fluidPage(
  titlePanel("Put title of the application"),
  sidebarLayout(
    sidebarPanel(
      radioButtons("sep", "File Separator: ",
                   choices = c(Comma = ",", Semicolon = ";", Tab = "\t"),selected = ","),
      fileInput("file", "Select a file: ", multiple = FALSE,
                accept = c("text/csv","text/comma-separated-values,text/plain",".csv")),
      uiOutput("mytype")
      ,bookmarkButton()
    ),

    mainPanel(
      textOutput("mytext"),
      textOutput("myrows")
    )
  )
)
}


server <- function(input, output, session) {
    input_file <- reactive({
      req(input$file)
      read.csv(input$file$datapath,
               header = TRUE,
               sep = input$sep)
    })


    output$mytype <- renderUI({
      selectInput("var1", "Select a type of drink: ", choices = levels(input_file()$Type))
    })

    onBookmark(function(state) {
      state$values$var1 <- input$var1
    })

    onRestored(function(state){
      updateSelectInput(session,"var1",selected=state$values$var1)
    })


    output$mytext <- renderText({paste("You have selected a Type of", tolower(input$var1))})

    input_rows <- reactive({
      data <- subset(input_file(), Type %in% input$var1)
      nrow(data)
    })

    output$myrows <- renderText({paste("The selected type has", input_rows(), "rows")})


  }


shinyApp(ui, server, enableBookmarking = "server")

0 个答案:

没有答案