R 基于其他下拉选择动态设置下拉选项
下面的代码允许用户在下拉列表中选择两个数据集,并显示所选数据集的所有列。我想添加第二个下拉列表,该下拉列表动态转换为所选第一个下拉列表中的列名称,以便用户可以选择仅显示单个列。目标是能够将任何数据集添加到第一个下拉列表中,并在第二个下拉列表中列出其列R 基于其他下拉选择动态设置下拉选项,r,shiny,R,Shiny,下面的代码允许用户在下拉列表中选择两个数据集,并显示所选数据集的所有列。我想添加第二个下拉列表,该下拉列表动态转换为所选第一个下拉列表中的列名称,以便用户可以选择仅显示单个列。目标是能够将任何数据集添加到第一个下拉列表中,并在第二个下拉列表中列出其列 library(shiny) ui <- shinyUI( fluidPage( selectInput("dataset", label = NULL, choices = c("mtcars&
library(shiny)
ui <- shinyUI(
fluidPage(
selectInput("dataset", label = NULL, choices = c("mtcars", "rock")),
tableOutput("contents")
)
)
server <- function(input, output, session) {
myData <- reactive({
switch(input$dataset,
"rock" = rock,
"mtcars" = mtcars)
})
output$contents <- renderTable({
myData()
})
observe({
updateSelectInput(session, "myNames",
label = "myNames",
choices = myData()$names,
selected = myData()$names[1])
})
}
shinyApp(ui, server)
图书馆(闪亮)
ui也许你在找这个
library(shiny)
ui <- shinyUI(
fluidPage(
selectInput("dataset", label = NULL, choices = c("mtcars", "rock")),
uiOutput("selectvar"),
plotOutput("contents")
)
)
server <- function(input, output, session) {
myData <- reactive({get(input$dataset)})
output$selectvar <- renderUI({
selectInput("varsel", label=NULL, choices=names(myData()), multiple=T)
})
output$contents <- renderPlot({
req(input$varsel[1],input$varsel[2])
ggplot(myData(), aes(x=.data[[input$varsel[1]]], y=.data[[input$varsel[2]]] )) + geom_point()
})
}
shinyApp(ui, server)
库(闪亮)
ui优胜者鸡肉晚餐。谢谢你不用DT就能解决这个问题吗?我真正想做的是将2个用户选择的列显示在服务器的ggplot输出中。请查看更新的代码。再次感谢。我正在寻找第二个下拉列表,但这将起作用