2015-05-04 61 views
6

我要创建这样一个下面选择选项,闪亮 - “选项”中的所有子列表都必须命名?

<select id="species"> 
    <option value="1">A</option> 
    <option value="2">B</option> 
    <option value="3">C</option> 
</select> 

所以我用数据帧来创建一个存储数据的表,

# Create the species table for select input. 
title <- c('A', 'B', 'C') 
code <- c('1', '2', '3') 
species <- data.frame(title, code) 

# Set choices of title and code for select input. 
choicesSpecies <- setNames(species$code, species$title) 

闪亮的ui.R,

selectInput(inputId = "species", 
        label = "Species:", 
        choices = choicesSpecies), 

我得到这个错误,

Error in (function (choice, name) : 
    All sub-lists in "choices" must be named. 

这是什么意思?我如何解决它以获得我需要的结果?

+0

你可以尝试使用'choices = species $ code',然后使用'switch'语句来获得等价的代码吗? – tospig

+0

当你用这种方式设置名称时(当我使用这种方法时我从来没有得到错误),错误是否也会发生:choicesSpecies < - species $ code;名称(choicesSpecies)< - species $ title – rdatasculptor

+0

谢谢你们。但没有任何建议工作恐怕... – laukok

回答

5

具有code列在数据帧的一个因素似乎是问题,也许尝试:

choicesSpecies <- setNames(as.numeric(species$code), species$title) 

或者:

在你ui.R

selectInput(inputId = "species", 
       label = "Species:", 
       choices = code) 
+0

感谢NicE。它与'choicesSpecies < - setNames(as.numeric(species $ code),species $ title)'一起工作,但是如果我在代码中有这个数据,我会得到同样的错误var - 'code < - c('a', 'b','c')'... – laukok

2

回复您的评论(没有足够的回复回复):

code <- c('a','b','c') 

您需要将它们更改为字符,方法与将它们更改为数字相同。 例如

choicesSpecies <- setNames(as.character(species$code), species$title) 
相关问题