我不完全确定你想要实现什么。
根据两个或多个选定的输入对 data.frame 进行切片相当简单。
另一方面,在您的代码 sn-p 中,您指的是闪亮的函数 renderUI,它用于服务器端函数。这是 Shiny 最有趣的方面之一,但反应性也是新手最难掌握的方面之一。
这是一个没有renderUI的简单示例(故意保持简单的格式等):
library(shiny)
city <- c('London','Tokio','New York')
specialist <- c('ortho', 'perio','gyne', 'rhino')
df <- expand.grid(city = city, specialist = specialist)
opt_specialist <- sort(unique(df$specialist))
opt_city <- sort(unique(df$city))
ui <- fluidPage(
selectInput("spec","Select Specialist",opt_specialist),
selectInput("city","Select City",opt_city),
verbatimTextOutput('city_'),
verbatimTextOutput('spec_')
)
server <- function(input, output, session) {
output$city_ <- renderText({input$city})
output$spec_ <- renderText({input$spec})
}
shinyApp(ui = ui, server = server)
下面的示例使用服务器端编程。除非与更复杂的服务器端操作结合使用,否则使用它本身并没有多大意义。
library(shiny)
city <- c('London','Tokio','New York')
specialist <- c('ortho', 'perio','gyne', 'rhino')
df <- expand.grid(city = city, specialist = specialist)
opt_specialist <- sort(unique(df$specialist))
opt_city <- sort(unique(df$city))
ui <- fluidPage(
uiOutput("origin"),
verbatimTextOutput('city_'),
verbatimTextOutput('spec_')
)
server <- function(input, output, session) {
output$origin <- renderUI({
list(
selectInput("spec","Select Specialist",opt_specialist),
selectInput("city","Select City",opt_city)
)
})
output$city_ <- renderText({input$city})
output$spec_ <- renderText({input$spec})
}
shinyApp(ui = ui, server = server)
如果我遗漏了任何内容,请编辑或扩展您的帖子,我会相应地修改回复。