gpt4 book ai didi

r - 如何将条件面板设置为 Shiny 的选择输入?

转载 作者:行者123 更新时间:2023-12-04 10:28:16 25 4
gpt4 key购买 nike

我试图在我 Shiny 的应用程序中添加第二个输入面板,其内容取决于第一个输入面板选择的输入,我尝试使用条件面板但没有运气。

用户界面

TO <- read.csv("~/TO/TO/TO.csv", sep=";")
图书馆( Shiny )

Shiny 的UI(流体页面(

# 应用标题
标题面板(“仪表板”),

# 带有 slider 数量的侧边栏输入

侧边栏布局(

sidebarPanel(
selectInput("country", label = h4("Pays"),
choices = levels(as.factor(TO$Pays))),
conditionalPanel(
condition = "input.country == 'Allemagne'",
selectInput("to", label = h4("Tour opérateur"),
choices = levels(as.factor(as.character(TO[as.character(TO$Pays)=="Allemagne",]$TO))))),
conditionalPanel(
condition = "input.country == 'Angleterre'",
selectInput("to", label = h4("Tour Operator"),
choices = levels(as.factor(as.character(TO[as.character(TO$Pays)=="Angleterre",]$TO)))))

...

我找到的解决方案是为第一个 inputPanel 的每个值创建一个 conditionalPanel 但是第二个 inputPanel 输出仅对第一个值是正确的。

有没有人有办法解决吗?

最佳答案

我知道下面的方法不是通过条件面板,因为我认为通过下面给出的示例来实现它会更简单。

首先你可以使用updateSelectInput更新您的条目,像这样

rm(list = ls())
library(shiny)
runApp(list(
ui = bootstrapPage(
selectInput('data', 'Data', c('mtcars', 'iris')),
selectInput('Cols', 'Columns', "")
),
server = function(input, output, session){
outVar <- reactive({
mydata <- get(input$data)
names(mydata)
})
observe({
updateSelectInput(session, "Cols",choices = outVar()
)})
}
))

您可以使用其他方式 renderUI创建 selectInput并像这样填充它:
rm(list = ls())
library(shiny)
runApp(list(
ui = bootstrapPage(
selectInput('data', 'Data', c('mtcars', 'iris')),
uiOutput('columns')
),
server = function(input, output){
output$columns <- renderUI({
mydata <- get(input$data)
selectInput('columns2', 'Columns', names(mydata))
})
}
))

编辑:如何在 renderUI 中添加多个小部件
你需要包装你的 divs里面 tagList()像这样:
rm(list = ls())
library(shiny)
runApp(list(
ui = bootstrapPage(
selectInput('data', 'Data', c('mtcars', 'iris')),
uiOutput('columns')
),
server = function(input, output){
output$columns <- renderUI({
mydata <- get(input$data)
tagList(
selectInput('columns2', 'Columns', names(mydata)),
selectInput('columns3', 'Columns 2', names(mydata)))
})
}
))

关于r - 如何将条件面板设置为 Shiny 的选择输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27982577/

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