use*_*276 5 r shiny shiny-server
我试图在我闪亮的应用程序中添加第二个输入面板,其内容取决于第一个输入面板选择的输入,我试图吹嘘使用条件面板,但运气不好。
TO <-read.csv(“〜/ TO / TO / TO.csv”,sep =“;”)库(发光)
ShinyUI(fluidPage(
#应用程序标题titlePanel(“ dasboard”),
#带有滑动条输入的边栏,用于接收箱数
sidebarLayout(
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)))))
Run Code Online (Sandbox Code Playgroud)
...
我发现的解决方案是为第一个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()
)})
}
))
Run Code Online (Sandbox Code Playgroud)
您可以使用其他方式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))
})
}
))
Run Code Online (Sandbox Code Playgroud)
编辑:如何在内部添加多个小部件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)))
})
}
))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3959 次 |
| 最近记录: |