如何使用selectInput返回标签对应的key的值

Ale*_*lex 1 r shiny

在包中Shiny,语法:

  selectInput(inputId = "event_choice",
               label = "Choose event",
              selected = NULL,
               choices = events
  )
Run Code Online (Sandbox Code Playgroud)

显示一个框,告诉用户从填充有 vector 条目的下拉框中选择一个事件events。然后input$event_choice在服务器端引用用户选择。

考虑以下数据框df

event_id    events
________    _________
139         Alex visited on 2016-01-01
140         Alex left on 2016-02-01
150         ...
Run Code Online (Sandbox Code Playgroud)

与向量events = df$events

使用这个描述性向量显然可以让用户更容易在selectInput. 但是,在对数据进行进一步的子集或操作时,使用event_id.

将所选输入映射到 的最佳方法是event_id什么?我知道我可以data.frame在 .

Xio*_*Jin 6

注意choice参数

选择 要从中选择的值列表。如果列表的元素被命名,则向用户显示该名称而不是值。

因此,您可以使用名称为events列且值为event_id列的命名列表。正如@alistaire 在下面的评论中所建议的那样,一种简单直接的方法是

choices = setNames(df$event_id, df$event) 
Run Code Online (Sandbox Code Playgroud)

  • `setNames` 使这非常简单:`choices = setNames(df$event_id, df$event)` (2认同)