gpt4 book ai didi

r - Shiny 的矩阵形式的动态输入小部件

转载 作者:行者123 更新时间:2023-12-04 11:42:28 26 4
gpt4 key购买 nike

我开发了一个使用 shiny 的应用程序,它允许用户输入他选择的行数和列数,然后它将相应地在主面板中相应地显示许多输入小部件。目前有 1 列和尽可能多的行。

我的挑战是如果用户选择超过 1 列并且这些新列应该以矩阵形式与主面板中的现有小部件相邻,则复制相同的内容。

该怎么做?

我的代码:

library(shiny)

ui <- shinyUI(fluidPage(
titlePanel(title = "Adding input widgets horizontally and dynamically"),
sidebarLayout(

sidebarPanel(numericInput("rows","Input No. of rows",value = 5),
br(),
numericInput("col","input No of col",value = 1)),

mainPanel(uiOutput("plo"))
)
)
)

server <- function(input,output){

output$plo <- renderUI({

lapply(seq(input$rows),function(i){
numericInput(inputId = paste0("range",i),label = "col1",value = i)
})
})
}

shinyApp(ui,server)

最佳答案

您可以用非常相似的方式做到这一点,使用另一个 lapply 将内部 lapply 包裹在 column 中。尝试以下操作:

library(shiny)

ui <- shinyUI(fluidPage(
titlePanel(title = "Adding input widgets horizontally and dynamically"),
sidebarLayout(

sidebarPanel(numericInput("rows","Input No. of rows",value = 5,min=1),
br(),
numericInput("col","input No of col",value = 1,min=1)),

mainPanel(uiOutput("plo"))
)
)
)

server <- function(input,output){

output$plo <- renderUI({

lapply(seq(input$col), function(j){
column(width=3,
lapply(seq(input$rows),function(i){
numericInput(inputId = paste0("range",i,"_",j),label = "col1",value = i)
})
)
})
})
}

shinyApp(ui,server)

希望这对您有所帮助!

关于r - Shiny 的矩阵形式的动态输入小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48353857/

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