#r #shiny #rstudio #shinydashboard
#r #блестящий #rstudio #shinydashboard
Вопрос:
Общий вопрос о R Shiny / R Studio…
Я заметил, что когда я запускаю свое приложение R Shiny, все, что я запрограммировал до сих пор, работает так, как задумано. Однако, если я оставляю окно открытым в фоновом режиме и переключаюсь на использование чего-то другого (например, Excel, Chrome и т. Д.), Или иногда даже если я нахожусь в самом окне, через несколько минут или около того окно просто закрывается само по себе. Однако R Studio показывает, что оно все еще прослушивается, и не будет запускать дальнейший код, пока я не нажму кнопку «СТОП», чтобы завершить существующий запуск приложения.
Является ли такое поведение нормальным в R Studio при разработке приложения или это говорит о том, что с моим кодом что-то не так, из-за чего он исчезает? При исчезновении в консоли не появляется предупреждающих сообщений. Я попытался запустить другое приложение, используя некоторый базовый пример кода, который я нашел, и происходит то же самое.
Если это обычное дело, почему оно это делает и есть ли какой-нибудь способ остановить это?
Пример кода, вероятно, не имеет отношения к делу, но вот пример приложения с веб-сайта RStudio https://shiny.rstudio.com/articles/basics.html . Эта проблема возникает и с этим приложением.
ui <- fluidPage(
# App title ----
titlePanel("Reactivity"),
# Sidebar layout with input and output definitions ----
sidebarLayout(
# Sidebar panel for inputs ----
sidebarPanel(
# Input: Text for providing a caption ----
# Note: Changes made to the caption in the textInput control
# are updated in the output area immediately as you type
textInput(inputId = "caption",
label = "Caption:",
value = "Data Summary"),
# Input: Selector for choosing dataset ----
selectInput(inputId = "dataset",
label = "Choose a dataset:",
choices = c("rock", "pressure", "cars")),
# Input: Numeric entry for number of obs to view ----
numericInput(inputId = "obs",
label = "Number of observations to view:",
value = 10)
),
# Main panel for displaying outputs ----
mainPanel(
# Output: Formatted text for caption ----
h3(textOutput("caption", container = span)),
# Output: Verbatim text for data summary ----
verbatimTextOutput("summary"),
# Output: HTML table with requested number of observations ----
tableOutput("view")
)
)
)
# Define server logic to summarize and view selected dataset ----
server <- function(input, output) {
# Return the requested dataset ----
# By declaring datasetInput as a reactive expression we ensure
# that:
#
# 1. It is only called when the inputs it depends on changes
# 2. The computation and result are shared by all the callers,
# i.e. it only executes a single time
datasetInput <- reactive({
switch(input$dataset,
"rock" = rock,
"pressure" = pressure,
"cars" = cars)
})
# Create caption ----
# The output$caption is computed based on a reactive expression
# that returns input$caption. When the user changes the
# "caption" field:
#
# 1. This function is automatically called to recompute the output
# 2. New caption is pushed back to the browser for re-display
#
# Note that because the data-oriented reactive expressions
# below don't depend on input$caption, those expressions are
# NOT called when input$caption changes
output$caption <- renderText({
input$caption
})
# Generate a summary of the dataset ----
# The output$summary depends on the datasetInput reactive
# expression, so will be re-executed whenever datasetInput is
# invalidated, i.e. whenever the input$dataset changes
output$summary <- renderPrint({
dataset <- datasetInput()
summary(dataset)
})
# Show the first "n" observations ----
# The output$view depends on both the databaseInput reactive
# expression and input$obs, so it will be re-executed whenever
# input$dataset or input$obs is changed
output$view <- renderTable({
head(datasetInput(), n = input$obs)
})
}
shinyApp(ui, server)
Комментарии:
1. У меня та же проблема. Когда приложение развертывается на сервере RS connect, проблема решена. Только когда оно запускается с сервера RStudio, тогда это происходит всегда.
Ответ №1:
Я сам написал несколько приложений shiny, и я раньше не сталкивался с таким поведением, даже в RStudio или в моем стандартном приложении Chrome, которое вообще не использует rstudio.
На первый взгляд я вижу, что вы не используете объект сеанса на своем сервере.
function(input, output, session)
Хотя объект сеанса обрабатывает повторное подключение к серверу в фоновом режиме, возможно, он также делает это с вашим локальным хостом. Но я действительно не знаю. Попробуйте интегрировать это, и если ошибка все еще существует, мы должны посмотреть на вашу систему и установленные пакеты в вашем приложении.
Комментарии:
1. Спасибо, как вы говорите, объект сеанса отсутствует в приведенном выше коде, но я уже включил его в код для моего собственного приложения, и эта проблема все еще возникает. Я также пытался добавить на сервер строку «session $ allowReconnect (TRUE)», но безрезультатно.
2. Хм, весь браузер закрывается или только приложение?
3. Если оно запущено в браузере Chrome, возможно, это как-то повлияло на него. Попробуйте удалить все файлы cookie и данные о просмотре, отключите все расширения вашего браузера, которые могут повлиять на это.
4. Просто всплывающее окно приложения, и, как я уже сказал, это просто окно, которое исчезает. Само приложение все еще работает в окне консоли и не выдает никаких указаний на ошибку. Я попробую ваши предложения, спасибо