【问题标题】:How to dynamically change the width of columns in RShiny?如何动态更改 R Shiny 中的列宽?
【发布时间】:2020-04-24 09:38:26
【问题描述】:

我想知道是否可以(如果可以,如何)动态更改 RShiny 中的列宽?

我认为这可以工作的一个简单的可重现示例(但不是,如果您取消注释服务器部分,应用程序将崩溃)如下。基本上我想做的是有一个滑块,它可以调整列的宽度。

也许我真正想做的一个更好、更优雅的例子在这里 (link)。我想要两个相邻的面板,当您调整一个的宽度时(即向左或向右拖动面板的边框),它旁边的面板会自动调整大小以适应空间。

有人知道如何在 Shiny 中做到这一点吗?

感谢您的帮助!

library(shiny)

length_1 = 2
length_2 = 10

ui <- fluidPage(
 fluidRow(
   column(width = length_1,"Text"),
   column(width = length_2,"More text")
 ),
 fluidRow(
   column(
   width = 12, sliderInput("length","slide",min = 0,max = 12,value = 2)
 ))
)

server <- function(input, output, session) {
  #length_1 = input$length
  #length_2 = 12-input$length

}

shinyApp(ui, server)

【问题讨论】:

    标签: jquery r shiny jquery-ui-resizable


    【解决方案1】:

    您可以使用renderUI 来做到这一点

    library(shiny)
    ui <- fluidPage(
        fluidRow(
            column(
                width = 12, sliderInput("length","slide",min = 1, max = 11,value = 2)
            )),
        fluidRow(
            uiOutput("cols")
        )
    )
    
    server <- function(input, output, session) {
    
        output$cols <- renderUI({
            tagList(
                column(width = input$length,"Text"),
                column(width = 12-input$length,"More text")
            )
        })
    }
    
    shinyApp(ui, server)
    

    【讨论】:

    • 太棒了,谢谢!你知道是否有可能使用 jquery resize 函数来做到这一点?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    相关资源
    最近更新 更多