Подтвердить что ты не робот

R shiny: как сохранить входные данные на сервере или получить доступ к входным переменным глобально?

Я делаю приложение, которое задает пользователю несколько базовых вопросов опроса. Когда это будет сделано, им будет предложено ввести числовой ввод через панель слайдов, нажать "Продолжить", затем сгенерировать график, снова запросить пользователя, обновить график и т.д. Первый вход должен быть y1 на графике, а второй вход должен быть y2 на графике, ect. Но, кроме того, я хотел бы сохранить данные, которые вводит пользователь, чтобы я мог получить доступ к нему в моем R script по всему миру, поэтому его можно отправить мне с помощью sendmailR или чтобы его можно было загрузить на мой компьютер как текстовый файл. Но мне трудно понять, как это сделать. Вот что я до сих пор.

n=10 #number of times to ask the user for input which will be stored in harv[i]
Time = seq(n)
harv = rep(0,n) #initializing vector for storage of user input at time 1 through n

############### define server logic

shinyServer(function(input, output){

  # Compute the forumla text in a reactive expression since it is 
  # shared by the output$caption and output$mpgPlot expressions
  for(i in Time){

  # generate a plot
  output$yieldplot <- renderPlot({
   harv[i] = input$harvest
   plot(Time, harv, type='p', ylim=c(0,1))
  })

 }#for

})

Вот файл ui.R

###########################################
#####   User Interface  ###################
###########################################

library(shiny)

#Define UI for app
shinyUI(pageWithSidebar(

  #title  
  headerPanel("Game"),
  mainPanel(   selectInput("workexp", "Have you ever been employed:",
                            list("No"="no", "Yes" = "yes")),    
               sliderInput("push", "Choose a number", 
                           min = 0, max = 1, value = 0.5, step= 0.01),
               submitButton("Enter"),
               plotOutput("yieldplot")                                                  
  )#mainpanel

))#shinyUI  

Также мой цикл for, чтобы попытаться сгенерировать график снова и снова, не будет работать, я полагаю, что мне нужно сделать что-то реактивное, но мне нужно выяснить способ построения заглавных записей, записанных пользователем, которые все хранятся в harv. Я просмотрел downloadHanlder, но это загружает данные и графики на пользовательский компьютер.

4b9b3361

Ответ 1

Ответ заключается в определении переменной вне функции shinyServer. Затем сделайте глобальное присвоение в реактивных функциях, используя <<- вместо <- или =. Тогда у вас есть доступ к нему за пределами реактивных функций. Тем не менее, у вас есть только доступ к нему во время работы приложения, но это не проблема для отправки по электронной почте ввода или записи ввода в текстовый файл.

Ответ 2

Наткнулся на этот ответ, я вижу, что он датируется 2013 годом, просто подумал, что скажу, что это решение не работает для последних версий R Shiny.