gpt4 book ai didi

r - 在 Shiny 的 renderUi 中使用 renderDataTable

转载 作者:行者123 更新时间:2023-12-01 19:07:21 25 4
gpt4 key购买 nike

我正在试验一个 Shiny 的应用程序来显示动态上下文,但我无法让 renderDataTable 工作到 renderUi 组件中。下面是两个简单的可复制测试:第一个测试不起作用,第二个没有 renderUi 的测试当然可以正常工作。

这两者在概念上有什么区别,为什么第一个不能在 Shiny 中工作?

这个不起作用:请注意,uiOutput myTable 包含两个响应式组件,一个 selectInput 和一个 renderDataTable,但只有 selectInput 已呈现。

library(shiny)
runApp(list(
ui = fluidPage(
fluidRow(h2("where is the table?")),
uiOutput('myTable')
),
server = function(input, output) {
output$myTable <- renderUI({
fluidPage(
fluidRow(selectInput("test", "test", c(1,2,3))),
fluidRow(renderDataTable(iris))
)
})
}
))

这很好,selectInputrenderDataTable 都被渲染了:

library(shiny)
runApp(list(
ui = fluidPage(
fluidRow(h2("where is the table?")),
fluidRow(selectInput("test", "test", c(1,2,3))),
fluidRow(dataTableOutput('myTable'))
),
server = function(input, output) {
output$myTable = renderDataTable(iris)
}
))

如何让第一个场景发挥作用?

谢谢。

一辉评论后编辑(感谢一辉):

renderUi中必须使用一些ui函数,而不是一些渲染函数:按照正确的方式更改了示例代码,结果没有改变:仍然没有数据显示。

library(shiny)
runApp(list(
ui = basicPage(
uiOutput('myTable')
),
server = function(input, output) {
output$myTable <- renderUI({dataTableOutput(iris)
})
}
))

编辑n.2

刚刚解决,让它正常工作:

library(shiny)
runApp(list(
ui = fluidPage(
mainPanel(

uiOutput('myTable')
)
),
server = function(input, output) {
output$myTable <- renderUI({
output$aa <- renderDataTable(iris)
dataTableOutput("aa")
})
}
))

我必须首先将 renderTableOutput 保存在输出变量中,然后将其提供给 dataTableOutput

感谢您向我指出:here

最佳答案

如果将datatable生成部分和ui生成部分分开,会更清楚:

library(shiny)
runApp(list(
ui = fluidPage(
mainPanel(
uiOutput('myTable')
)
),
server = function(input, output) {
output$aa <- renderDataTable({iris})
output$myTable <- renderUI({
dataTableOutput("aa")
})
}
))

关于r - 在 Shiny 的 renderUi 中使用 renderDataTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31813601/

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