gpt4 book ai didi

R:制作一个可用于 Shiny selectInput 的唯一值列表

转载 作者:行者123 更新时间:2023-12-04 20:39:32 25 4
gpt4 key购买 nike

我正在开发一个小型的 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包含从我打算对其应用过滤器的列派生的唯一值列表。以 为例测量 列我使用以下代码获取唯一值列表:
## 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),而是一个数字列表,如下图所示(我的数据中的度量比样本数据中的度量更多):
Sample List

我猜这个问题与列表的结构有关,目前
> 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$Measurecharacter

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)

关于R:制作一个可用于 Shiny selectInput 的唯一值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29232020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com