R:制作可在 Shiny selectInput 中使用的唯一值列表
R: making a list of unique values usable in Shiny selectInput
我正在开发一个小型 Shiny 应用程序,它将提供对一些公开可用的劳动力市场数据的访问。我有一个相对简单的长格式数据集,类似于下面的摘录:
数据
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)
),
生成的列表不包含所需的文本 (Measure A, Measure 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)
我正在开发一个小型 Shiny 应用程序,它将提供对一些公开可用的劳动力市场数据的访问。我有一个相对简单的长格式数据集,类似于下面的摘录:
数据
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)
),
生成的列表不包含所需的文本 (Measure A, Measure 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)