【发布时间】:2020-08-10 23:19:33
【问题描述】:
示例案例:我的 global.R 中有一个名为 get_data 的函数,它返回许多项目的列表。我不只是将数据放在全局中的原因是数据可以在一定时间后自动刷新
ui.R
my_data <- uiOutput("data") # Doesn't work
### Some more generic manipulation before final use
# The output of my_data will look like the following below.
my_data <- list()
my_data$first_entry <- c("a", "b", "d")
my_data$second_entry <- c("x", "y", "z") # and so on
shinyUI(navbarPage(theme=shinytheme("flatly"),
'App Name',
tabPanel('Title',
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
width=3,
# new box
checkboxGroupButtons(
'name',
'label:',
choices = sort(my_data$first_value),
status = 'primary',
selected = sort(my_data$first_value)[1],
size = 'xs'
# inline = TRUE
))
服务器.R
shinyServer(function(input, output, session) {
data <- reactive({
invalidateLater(100000,session)
get_data()
})
output$data <- renderUI({
data()
})
})
两个问题:
- 有什么方法可以正确引用 my_data 吗?
- 如果我的函数 get_data 只是读取系统更新的(大)csv。有没有比我现在做的更好的方法?
【问题讨论】:
-
两件事:(1)
uiOutput需要在shinyUI(...)之外,而不是在它之外。 (2)renderUI需要返回一个 UI 元素,例如selectInput或类似的。你想让output$data看起来像什么? -
感谢您的回复。第一条评论:注意到但在我的情况下相当困难。您可以将普通代码放入不是某种输出的 ShinyUI 中吗? Secondsly: output$data 将是一个向量列表。将更详细地编辑问题
-
是的,那么什么类型的 HTML 元素会显示向量列表?
textAreaInput用于查看原始值。 -
@r2evans 我已更改问题以包含一个更好的示例来说明我正在尝试做的事情