R блестящий: как сохранить входные данные на сервере или получить доступ к входным переменным глобально?
Я делаю приложение, которое задает пользователю несколько основных вопросов опроса. Когда это будет сделано, им будет предложено ввести числовой ввод с помощью ползунка, нажмите "Продолжить", затем сгенерируйте график, снова попросите пользователя ввести данные, обновите график и т. Д. Первый ввод должен быть y1 на графике, а второй ввод должен быть у2 на участке, т. д. Но кроме того, я хотел бы сохранить данные, которые вводит пользователь, чтобы я мог получить к ним доступ в своем R-скрипте глобально, чтобы его можно было отправить мне с помощью 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, но он загружает данные и графики на компьютер пользователя.
1 ответ
Ответ заключается в том, чтобы определить переменную за пределами функции глянцевого сервера. Затем сделайте глобальное назначение в реактивных функциях, используя <<-
вместо <-
или же =
, Тогда у вас есть доступ к нему за пределами реактивных функций. Тем не менее, у вас есть доступ к нему только во время работы приложения, но это не проблема для отправки по электронной почте ввода или записи ввода в текстовый файл.