在包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的背景下是否有更好的东西。
答案 0 :(得分:4)
请注意choice
参数
选项可供选择的值列表。如果列表的元素是 然后命名该名称,而不是显示给用户的值。
因此,您可以使用名称为events
列且值为event_id
列的命名列表。正如@alistaire在下面的评论中所建议的那样,一种简单直接的方法是
choices = setNames(df$event_id, df$event)