Мне удалось использовать global.R для передачи данных в ui.r и server.R при разработке в RStudio. Однако, когда я переношу свой код на сервер, ни ui.R, ни server.R не могут читать global.R. Я использую Shiny Server (не профессиональный). Что может быть причиной этого?
Мой код выглядит так (он не реагирует)
#global.R
x = 10
#ui.R
print(x)
> 10 #in RStudio viewer
> Error: object 'x' not found #on Shiny Server
Следуя приведенному ниже ответу sigmabeta, я внес изменения в server.R
и global.R
, однако я ищу, чтобы сервер сбросил x на другое значение, чтобы его можно было прочитать ui.R
. Это то, что мой код сейчас
#global.R
x = 10
get_x_value <- function (n) {
x = n+1
return x
}
#server.R
source("./global.R")
shinyServer(function(input, output) {
values <- reactiveValues()
observe ({
values$x <- get_x_value(5)
})
})
#ui.R
print(x)
> 6 #in RStudio viewer
> 10 #on Shiny Server
Это фактический код в ui.R
, где я пытаюсь установить состояние поля на основе значений, уже вычисленных в server.R
library(shinydashboard)
dashboardPage(
Header = dashboardHeader(title = 'Test'),
Sidebar = dashboardSidebar
(
sidebarMenu
(
menuItem("ABC", tabName = "ABC")
)
),
Body = dashboardBody
(tabItems
(
tabItem(
tabName = "ABC",
fluidRow
(
box
(
status = if (x==6) "info" else "danger" ,
solidHeader = TRUE
)
)
)
)
)
)