2016-07-21 22 views
0

Ich benutze R glänzende Werkzeuge und ich ein Problem zu treffen. Wenn ich die mehrere Auswahltaste verwenden, ich ein Komma am Ende jeder Auswahl hinzufügen möchten, hier ist das, was ich tue:So löschen Sie das letzte Komma in mehreren Auswahl in r Shiny

UI.R

conditionalPanel("input.Select_Table == 'Demographics'", 
       selectInput(inputId ="demo",label ="select variables you need", multiple = TRUE, 
          choices=c('Respondent_ID','year','month','City','City_Level','Province', 
          'Region','Actual_Age','Age_Level','Household_Income','Personal_Income_Level'))) 

Server.R

output$demo <- renderText(paste(substring(input$Select_Table,1,1),".",input$demo,",")) 

der Ausgang so sein würde:

D . City , D . year , D . Province , 

ich jedoch am Ende der letzten Auswahl das letzte Komma nicht will (derjenige sein Hind "D. Province "), aber ich habe finden bisher keinen Weg, um es automatisch zu löschen. Könnten Sie mir bitte helfen?

Vielen Dank,

Verse

+0

versuchen 'renderText (einfügen (Teilzeichenfolge (Eingabe $ Select_Table, 1,1),". ", Eingabe $ Demo, sep =", ")))? – Deena

+0

@Dee Wird ein seltsames Doppelkomma als solches hinzufügen ',.,' Und ich bin nicht sicher, warum. Das war, was mein erstes war. – amwill04

+0

@Dee Änderung in 'renderText (einfügen (Teilzeichenfolge (Eingabe $ Select_Table, 1,1),". ", Eingabe $ Demo, Kollaps =", "))' – amwill04

Antwort

0

Wie Sie die input.select_table nur bieten didnt Die conditionalPanel Ich habe den Code optimiert, um ein funktionierendes Beispiel zu erhalten. Sie möchten im Grunde den letzten Teil der paste-Funktion zu collapse= " , " ändern. Beachten Sie den Abstand um das Komma, um die gleiche Formatierung wie angegeben zu erhalten.

## ui.R 

shinyUI(fluidPage(

selectInput(inputId ="demo",label ="select variables you need", multiple = TRUE, 
           choices=c('Respondent_ID','year','month','City','City_Level','Province', 
             'Region','Actual_Age','Age_Level','Household_Income','Personal_Income_Level')), 


mainPanel(
    textOutput("demo") 
) 
)) 



## server.R 

shinyServer(function(input, output, session) { 

output$demo <- renderText(paste("D"," .",input$demo, collapse = " , ")) 
}) 

Ich habe "D" anstelle Ihrer substring(input$Select_Table,1,1) als das nicht im OP zur Verfügung gestellt.

+0

Hallo, vielen Dank für Ihren Beitrag, aber ich freue mich für eine Möglichkeit, das letzte Komma zu entfernen, außer das "D" zu ersetzen. –

+0

@Verse meine Antwort gelesen. Sie haben nicht die Möglichkeit geschaffen, die 'Eingabe'' select_table' zu ​​erstellen, also musste ich sie ersetzen. Das 'D' war einfach ein Beispiel. Stellen Sie andernfalls die 'Eingabe' bereit. Die gewünschte Antwort finden Sie im 'collapse'-Argument der' paste'-Funktion. Damit wird ein ',' zwischen jedem Element hinzugefügt, das an 'Einfügen' übergeben wird. Sie fügen das Komma als Argument hinzu, nicht das Trennzeichen, daher wird immer das letzte Komma hinzugefügt. – amwill04

+0

@ amwill04, tut mir leid, das habe ich gerade gemerkt. Ich bin deinem Schritt gefolgt und es funktioniert jetzt gut, vielen Dank, du hilfst mir wirklich gut. –