gpt4 book ai didi

Shinydashboard ui.R 和 server.R 没有读取 Global.R

转载 作者:行者123 更新时间:2023-12-01 23:41:17 33 4
gpt4 key购买 nike

在 RStudio 中开发时,我成功地使用 global.R 将数据传递给 ui.r 和 server.R。但是,当我将代码迁移到服务器时,ui.R 和 server.R 都无法读取 global.R。我正在使用 Shiny Server(非专业版)。什么可能导致这种情况?

我的代码看起来像这样(它不是响应式(Reactive)的)

#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
)
)
)
)
)
)

最佳答案

您似乎没有提到您的 Shiny 应用程序必须从 global.R 获取值(和/或)函数

您可以在 server.R 文件中执行此操作。 server.R 的示例代码:

library(shiny)

source("./global.R")

shinyServer(function(input, output) {
values <- reactiveValues()
observe ({
values$x <- get_x_value()
})
output$text1 <- renderText({
values$x
})

})

然后在 global.R 中,您将拥有函数 get_x_value像这样:
get_x_value <- function () {
x = 10
return x
}

x 也可以在外部定义,如果函数中有的话,您可能需要做一些额外的处理或编写更复杂的函数。

更新:
为 ui.R 添加代码
shinyUI(fluidPage(
mainPanel(
htmlOutput(
textOutput("text1")
)
))

关于Shinydashboard ui.R 和 server.R 没有读取 Global.R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39667241/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com