如何动态更改 R Shiny 中列的宽度?
How to dynamically change the width of columns in RShiny?
我想知道是否可以(如果可以,如何)动态更改 RShiny 中的列宽?
下面是一个简单的可重现示例,说明我认为这可以工作(但不会,如果您取消对服务器部分的注释,应用程序会崩溃)。基本上我想做的是有一个滑块,它可以调整列的宽度。
也许这里有一个更好、更优雅的例子,说明我真正想做的事情 (link)。我想要两个并排的面板,当您调整一个面板的宽度(即向左或向右拖动面板的边框)时,旁边的面板会自动调整大小以适应 space。
有谁知道如何在 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)
您可以使用 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)
我想知道是否可以(如果可以,如何)动态更改 RShiny 中的列宽?
下面是一个简单的可重现示例,说明我认为这可以工作(但不会,如果您取消对服务器部分的注释,应用程序会崩溃)。基本上我想做的是有一个滑块,它可以调整列的宽度。
也许这里有一个更好、更优雅的例子,说明我真正想做的事情 (link)。我想要两个并排的面板,当您调整一个面板的宽度(即向左或向右拖动面板的边框)时,旁边的面板会自动调整大小以适应 space。
有谁知道如何在 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)
您可以使用 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)