Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:创建一个在输入中可用的唯一值列表_R_List_Dataframe_Unique_Shiny - Fatal编程技术网

R:创建一个在输入中可用的唯一值列表

R:创建一个在输入中可用的唯一值列表,r,list,dataframe,unique,shiny,R,List,Dataframe,Unique,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

我正在开发一个闪亮的小应用程序,它将提供一些公开的劳动力市场数据。我有一个相对简单的长格式数据集,类似于下面的摘录:

数据

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))
  # 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)
#创建唯一度量的列表

#非常感谢,建议的解决方案按其应有的效果运行。我是否可以借此机会向您说明现在从
selectInput
传递的值是什么?如[Shining网站]()所述,
selectInput
遵循结构
selectInput(“变量”,“变量:”,c(“气缸”=“气缸”,“变速器”=“am”)
,并将
cyl
am
值作为所选值传递,如果我只提供一个值列表,会传递什么?当然可以。符号“c”(“气缸”=“气缸”,“变速箱”=“am”)`使selectInput的选项在用户面前显示为“气缸”和“变速箱”。在内部,用户所做的选择被翻译为“cyl”和“am”。重要的当然是内在价值观。如果您同意用户看到变量名而不是标签,那么只提供一个向量是没有任何好处的。