2014-06-12 14 views
16

czytam poniżej linii z http://cran.r-project.org/web/packages/shiny/shiny.pdf,Nie domyślny wybierz

"wybrano wartość (lub, jeśli żaden nie został dostarczony, tytuł) elementu nawigacyjnego powinien być wybrany domyślnie. Jeśli NULL, nawigacji fi rst zostanie wybrany. "

Czy ktoś wie, co powiedzieć, jeśli nie chcę wybierać żadnej wartości z listy wyboru? W rzeczywistości moja wybrana wartość jest domyślnie wybierana, a część odpoczynku jest automatycznie uruchamiana. Dlatego nie chcę początkowo wybierać żadnej wartości. Czy jest jakaś specyfika, którą muszę podać dla select =?

====> Właściwie to nie chcę, aby cokolwiek zostało wybrane automatycznie. Użyłem pod kodem, ale nadal wybieram najbardziej dostępną wartość z listy. Chcę, żeby było puste, a następnie możemy wybrać, co chcemy.

output$Choose_App <- renderUI({ 
selectInput("app", 
      "Select App:", 
      choices = as.character(mtrl_name), 
      selected = NULL , 
      multiple = FALSE 
      ) 
     }) 

====> I przeszedł http://cran.r-project.org/web/packages/shiny/shiny.pdf i zobaczyłem poniżej komentarz. Oznacza to, że może być puste tylko wtedy, gdy wybiorę multiple = TRUE. Popraw mnie, jeśli się mylę.

Kiedy zmieniono na stwardnienie = true, to jej nie uzyskiwanie wybrany domyślnie którego chcę, ale przed dokonaniem wyboru otrzymuję następujący komunikat o błędzie: Błąd: złe „Plik” argumentu

Czy ktoś wie o to jeśli robię coś złego? Ale jeśli wybiorę ten plik, błąd zniknie.

enter image description here

Używam następujący kod do tego:

# server.R 
setwd("/opt/shiny-server/samples/sample-apps/P-Dict_RDS2") 
mtrl_name <- try(system("ls | grep -i .rds", intern = TRUE)) 

shinyServer(function(input, output) { 

# First UI input (Service column) filter clientData 
output$Choose_Molecule <- renderUI({ 
selectInput("molecule", 
      "Select Molecule:", 
      choices = as.character(mtrl_name), 
      selected = input$molecule, 
      multiple = TRUE 
      ) 
     }) 

Odpowiedz

9

Można użyć wejścia selectize zamiast wybrać wejście, z niektórych niestandardowych opcji selectize ustawić początkowy wybór będzie pusta. An example został dostarczony w Błyszczącej Galerii. W szczególności zobacz przykład # 6.

# make sure you have shiny >= 0.9.1 
selectizeInput(
    'e6', '6. Placeholder', choices = state.name, 
    options = list(
    placeholder = 'Please select an option below', 
    onInitialize = I('function() { this.setValue(""); }') 
) 
) 

BTW, do błędu "ERROR: bad 'file' argument", nie sądzę, ktoś może pomóc, nie widząc kodu źródłowego aplikacji, a może to być oddzielne pytanie.

3

myślę, że można obejść przez dodanie pusty ciąg do listy wyboru:

selectInput("app", 
"Select App:", 
choices = c("", as.character(mtrl_name)), 
selected = NULL, 
multiple = FALSE) 
7

obliczu podobnego problemu. Rozwiązanie, które znalazłem, opiera się na odpowiedzi @ MKa. Nie chcesz ustawiać multiple = T, jeśli twój kod nie obsługuje wielu wartości. Co proponuję to:

selectInput("molecule", 
      "Select Molecule:", 
      choices = c("",as.character(mtrl_name)), 
      selected = NULL, 
      multiple = F 
      ) 

I aby pobrać wartość Selected:

if(!is.null(input$molecule)) 
{ 
    if(nchar(input$molecule)>1) 
    { 
    #do your thing.. 
    } 
} 

stały mój problem. Daj mi znać, jeśli znajdziesz lepsze rozwiązanie.