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

时间:2016-06-23 20:33:24

标签: r shiny

在包Shiny中,语法为:

  selectInput(inputId = "event_choice",
               label = "Choose event",
              selected = NULL,
               choices = events
  )

显示一个框,告知用户从填充了向量events中的条目的下拉框中选择一个事件。然后,用户选择由服务器端的input$event_choice引用。

考虑以下数据框df

event_id    events
________    _________
139         Alex visited on 2016-01-01
140         Alex left on 2016-02-01
150         ...

使用向量events = df$events

使用此描述性向量显然可以让用户更轻松地导航selectInput中的下拉列表。但是,在对数据进行进一步的子集或操作时,使用event_id更加有用和简洁。

将所选输入映射到event_id的最佳方法是什么?我知道我可以在data.frame中使用标准匹配算法,但是想知道在Shiny的背景下是否有更好的东西。

1 个答案:

答案 0 :(得分:4)

请注意choice参数

  

选项可供选择的值列表。如果列表的元素是   然后命名该名称,而不是显示给用户的值。

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

choices = setNames(df$event_id, df$event)