[英]R: making a list of unique values usable in Shiny selectInput
我正在开发一个小型的Shiny App,它可以访问一些公开的劳动力市场数据。 我有一个相对简单的长格式数据集,类似于下面的摘录:
数据
Geography Measure Time Value
ABC Measure A 2010 3
ABC Measure A 2011 4
ABC Measure A 2013 5
ABC Measure B 2010 0.2
ABC Measure B 2011 4
DEF Measure A 2010 4
DEF Measure A 2011 8
DEF Measure A 2012 7
DEF Measure B 2010 8
DEF Measure B 2010 7
我打算生成一个简单的图表,我想使用selectInput
方法为最终用户提供一种过滤表格和相应数据的便捷方式。 因此,我希望selectInput
包含从我打算应用过滤器的列派生的唯一值列表。 在Measure列的示例中,我使用以下代码获取唯一值列表:
## Create list of unique measures
lst.measures <- as.list(unique(dta$Measure))
但是当我尝试使用下面的代码将获得的列表引入Shiny ui.R
:
# Selection of the available indicators
selectInput("selectVariable", label = h3("Select box"),
choices = lst.measures,
selected = 1)
),
生成的列表不包含所需的文本(度量A,度量B),但是包含数字列表,如下图所示(我在数据中的测量值比在样本数据中更多):
我猜这个问题与目前列表的结构有关
> as.list(unique(dta.nom$Measure))
[[1]]
[1] Measure A
Levels: Measure A Measure B
[[2]]
[1] Measure B
Levels: Measure A Measure B
因此,我的问题是: 如何重新排序列表中的元素,以便生成的列表可以以有意义的方式传递给selectInput
,显示与所选列的唯一值对应的文本值?
尝试将dta.nom$Measure
转换为character
dta.nom$Measure = as.character(dta.nom$Measure)
除此之外,我不确定您是否确实需要将列表传递给selectInput。
# Create list of unique measures
#lst.measures <- as.list(unique(dta$Measure))
lst.measures <- unique(dta$Measure)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.