2013-03-10 6 views
20

Sto facendo un'applicazione che chiede all'utente alcune domande di indagine di base. Quando ciò viene fatto, viene loro richiesto di fornire un input numerico tramite una barra di scorrimento, premere continua, quindi generare un grafico, chiedere all'utente di immettere nuovamente, aggiornare il grafico, ecc. Il primo input deve essere y1 sul grafico e il secondo l'input dovrebbe essere y2 sulla trama, ecc. Ma in più vorrei salvare i dati che l'utente sta inserendo, in modo che possa accedervi nel mio script R a livello globale, quindi può essere inviato a me usando sendmailR o in modo che possa essere scaricato sul mio computer come un file di testo . Ma sto avendo problemi a capire come farlo. Ecco cosa ho finora.R lucido: come salvare i dati di input sul server o accedere alle variabili di input a livello globale?

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 

}) 

Ecco il file 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 

Anche il mio ciclo for per cercare di creare la trama più e più volte non funziona, suppongo che ho bisogno di fare qualcosa reattivo ma ho bisogno di trovare un modo per tracciare le voci definite dall'utente passate tutte memorizzate in harv. Ho esaminato downloadHanlder ma questo scarica i dati e trame sul computer dell'utente.

risposta

16

La risposta è definire una variabile esterna alla funzione shinyServer. Quindi eseguire un'assegnazione globale nelle funzioni reattive utilizzando <<- anziché <- o =. Quindi hai accesso ad esso al di fuori delle funzioni reattive. Tuttavia, si ha accesso ad esso solo mentre l'applicazione è in esecuzione, ma questo non è un problema per inviare e-mail da soli l'input o scrivere l'input in un file di testo.

Problemi correlati