我正在编写一个Shiny应用程序,其中包含许多用户输入,因此我希望有一个选项,允许用户保存他们的输入并在以后使用时加载它们。我能够按照在网上找到的示例完成这个任务,但现在我想请求一些帮助来改变代码功能。以下是代码:
library(shiny)
ui <- shinyUI(fluidPage(
br(),
actionButton("load_inputs", "Load inputs"),
br(),
br(),
numericInput("n", "Number",min = 1, value = 5),
numericInput("upper", "Upper",min = 0, max = 100, value = 15),
numericInput("lower", "Lower",min = 0, max = 100, value = 5),
actionButton('save_inputs', 'Save inputs')
))
server <- shinyServer(function(input, output,session) {
switch(Sys.info()[['sysname']],
Windows= {setwd(file.path(Sys.getenv("USERPROFILE"),"Desktop",fsep="\\"))},
Mac = { setwd("~/Desktop/")})
observeEvent(input$load_inputs,{
if(!file.exists('inputs.RDS')) {return(NULL)}
savedInputs <- readRDS('inputs.RDS')
inputIDs <- names(savedInputs)
inputvalues <- unlist(savedInputs)
for (i in 1:length(savedInputs)) {
session$sendInputMessage(inputIDs[i], list(value=inputvalues[[i]]) )
}
})
observeEvent(input$save_inputs,{
saveRDS( reactiveValuesToList(input) , file = 'inputs.RDS')
})
})
shinyApp(ui=ui,server=server)
现在,我希望将文件保存为 .csv 格式,这样不熟悉 R 语言的用户也可以读取并在以后更新它。以下是想要保存的输入格式(带有示例值):
n, 5
lower,10
upper, 29
如果在 R 中更容易操作,也可以将其格式化为
n, lower, upper
5, 10, 29
最后,在加载文件时,应用程序最好询问用户指向文件位置,然后在保存应用程序的输入时,应用程序会询问用户要将文件保存到哪个位置。
我该如何编辑我的代码来实现这一点?