我对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")