如何保存用户插入的数据,我只打印:
print(c(input$buttonNext,randomNumber,input_radio))
这不应该只是印刷,但以后应该可以使用。我的计划是,人们评估我的情节,然后我为每个用户看到他为每个情节点击的按钮。
ui <- fluidPage(
actionButton("buttonNext", "Next"),
radioButtons("radio", "Your Decision:",
choices = c("No Decision" = 'NoDec', "Yes" = 'yes', "No" = 'no'),
selected = 'NoDec'),
plotOutput("TimeSeriesPlot")
)
server <- function(input,output,session) {
clickNext <- reactive({
isolate(input_radio <- input$radio)
randomNumber <- input$buttonNext
print(c(input$buttonNext,randomNumber,input_radio))
return(randomNumber)
})
observeEvent(input$buttonNext,
{
updateRadioButtons(session,'radio',selected = -1)
})
output$TimeSeriesPlot <- renderPlot({
i <- clickNext()
plot(i)
})
}
shinyApp(server = server, ui = ui)
答案 0 :(得分:0)
这种方法是任何类似网络应用的典型方法,您可以:
最终决定将取决于应用程序的复杂性,数据量,对数据完整性,可移植性,环境等的担忧。
利用R的一些很好的功能,你可以根据你的要求,用户指定的参数,但你甚至可以存储实际的结果图。
理想情况下,这需要db中的blob字段,但原则上你可以构建一个列表列表,其中一个条目是绘图参数,另一个是实际绘图(然后将所有内容保存在单个rds中文件。
这是一个示例实现。您可以将数据保存在RDS文件中,或使用替代实现(此处已注释掉),允许您在终止应用程序时保存数据。
library(shiny)
# this is not strictly necessary, but is the way I prefer to define an emply data.frame
resultData <- data.frame(times=character(), inputs=numeric(), random=numeric(),
decision=character())
ui <- fluidPage(
actionButton("buttonNext", "Next"),
radioButtons("radio", "Your Decision:",
choices = c("No Decision" = 'NoDec', "Yes" = 'yes', "No" = 'no'),
selected = 'NoDec'),
plotOutput("TimeSeriesPlot")
)
server <- function(input,output,session) {
clickNext <- reactive({
isolate(input_radio <- input$radio)
randomNumber <- input$buttonNext
print(c(input$buttonNext,randomNumber,input$radio))
return(randomNumber)
})
observeEvent(input$buttonNext,
{
updateRadioButtons(session,'radio',selected = -1)
})
output$TimeSeriesPlot <- renderPlot({
i <- clickNext()
a <- plot(i)
results <- data.frame(times=Sys.time(),inputs=input$buttonNext,random=clickNext(),
decision=input$radio)
# with <<- you make sure the variable is updated outside of the scope of the function
resultData <<- rbind(resultData,results)
saveRDS(resultData, file = "data/resultData.rds")
})
# alterantive way to save data, when the app is ended
# session$onSessionEnded({
# saveRDS(resultData, file = "data/resultData.rds")
# stopApp
# })
}
shinyApp(server = server, ui = ui)
# analyse <- readRDS(file = "data/resultData.rds")
如果您希望我扩展上述任何内容,请与我们联系。