2015-05-04 14 views
6

Voglio creare un selezionare opzioni come questa qui sotto,Lucido - Tutti i sottoelenco in "scelte" devono essere denominati?

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

Quindi io uso frame di dati per creare una tabella che memorizza i dati,

# 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) 

di Shiny ui.R,

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

Ho ricevuto questo errore,

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

Che cosa significa? Come posso aggiustarlo per ottenere il risultato di cui ho bisogno?

+0

potresti provare a utilizzare 'choices = species $ code', quindi utilizzare un'istruzione' switch' per ottenere il codice equivalente? – tospig

+0

L'errore si verifica anche quando si impostano i nomi in questo modo (non ho mai avuto errori quando si utilizza questo approccio): choicesSpecies <- species $ code; nomi (choicesSpecies) <- species $ title – rdatasculptor

+0

grazie ragazzi. ma nessuno dei suggerimenti funziona, temo ... – laukok

risposta

5

Avere la colonna code come un fattore nella vostra cornice di dati sembra essere il problema, magari provare:

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

Oppure:

Nel vostro ui.R:

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

Grazie NicE. Funziona con 'choicesSpecies <- setNames (as.numeric (species $ code), species $ title)' ma ottengo lo stesso errore se ho questi dati nel mio codice var - 'code <- c ('a', 'b', 'c') '... – laukok

2

In risposta al tuo commento (non abbastanza rappresentante per rispondere) a proposito di:

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

È necessario cambiarli in caratteri allo stesso modo in cui li si stava modificando in caratteri numerici. ad es.

choicesSpecies <- setNames(as.character(species$code), species$title) 
Problemi correlati