Как сделать переменные глобальными, если они вызывают из скрипта и на стороне сервера в R? - PullRequest
1 голос
/ 05 марта 2020

Давайте посмотрим на следующий пример.

Существует 2 файла: «setting.R» с названием приложения и заголовком окна и «app.R», который работает как веб-приложение. При загрузке приложения я должен вызывать «settings.R» на стороне сервера (только так). К сожалению, переменные в «settings.R» не являются глобальными, и я получаю сообщение об ошибке в журнале сервера «Ошибка в navbarPage (имя_приложения ... объект« имя_приложения »не найден». Использование оператора «<< -» для «имя_приложения < <- «Тестовое приложение» не помогает. </p>

Код, запущенный в «settings.R», зависит от параметра «app_id», определенного на стороне сервера. Поэтому я не могу использовать «global.R» также.

Вопрос в том, как сделать переменные "app_name" и "window_title" глобальными или видимыми любым другим способом в "app.R".

settings.R
=====
if(app_id == "1") {
  app_name <- "App 1"
  window_title <- "Title 1"
}

if(app_id == "2") {
  app_name <- "App 2"
  window_title <- "Title 2"
}

app.R
=====   

# Server
server <- function(input, output, session) {      
  output$uo_init_app <- renderUI({
    app_id <- "1"        
    source("settings.R")        
  })      
}

# UI
ui <- fluidPage(
   navbarPage(app_name, 
              windowTitle = window_title, 
              fluidPage(
                fluidRow(uiOutput("uo_init_app")),
                fluidRow("App")
              ))

# Run app
shinyApp(ui, server)

Спасибо!

1 Ответ

2 голосов
/ 05 марта 2020

Вы можете использовать Global.R в соответствии с блестящим документом

Я использую его для определения пользовательских функций и загрузки данных, которые будут использоваться в ui.R и server.R

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...