selectizeInput中的选择是否可能是数据帧中的行?如果是这样,返回的数据将是所选行的项目列表吗?我一直无法完成这项工作。在下面的代码中,cityInput有效,因为选择是一个字符向量;但是locationInput无效,选择框中的项目列表为空。
这是常见的情况,其中用户输入需要根据多列中的值进行选择以确定唯一行。在下面的示例中,不同的城市具有相同的名称,并且使用州来唯一地确定位置。将两列粘贴在一起是一种解决方案,但是在复杂情况下,这种方法会变得混乱。
library(shiny)
locations <- data.frame(City=c("Ames", "Beaumont", "Beaumont", "Portland", "Portland"),
State=c("IA", "CA", "TX", "ME", "OR"))
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
selectizeInput("cityInput", "City", choices=NULL, selected=NULL),
selectizeInput("locationInput", "Location", choices=NULL, selected=NULL)
),
mainPanel("Main Panel")
)
)
server <- function(input, output, session) {
updateSelectizeInput(session, 'cityInput',
choices = locations$City,
server = TRUE
)
updateSelectizeInput(session, 'locationInput',
choices = locations,
server = TRUE
)
}
shinyApp(ui, server)
答案 0 :(得分:0)
显然,selectizeInput
需要将data.frame的列称为value
和label
。
然后显示位置信息:
library(shiny)
locations <- data.frame(value=c("Ames", "Beaumont", "Beaumont", "Portland", "Portland"),
label=c("IA", "CA", "TX", "ME", "OR"))
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
selectizeInput("cityInput", "City", choices=NULL, selected=NULL),
selectizeInput("locationInput", "Location", choices=NULL, selected=NULL)
),
mainPanel("Main Panel")
)
)
server <- function(input, output, session) {
updateSelectizeInput(session, 'cityInput',
choices = locations$value,
server = TRUE
)
updateSelectizeInput(session, 'locationInput',
choices = locations,
server = TRUE
)
}
shinyApp(ui, server)