2015-05-04 94 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) 
相關問題