2016-11-09 7 views
0

Ich versuche in einem selectInput die Namen der Variablen, die eine Datei hat, zu zeigen. Die Idee ist, dass der Benutzer eine Datei in die App hochlädt und er jede Variable im selectInput auswählen kann. Ich versuche das zu tun, aber ich merke meinen Fehler nicht. Ich habe diese Antwort gefunden, aber es hat mir nicht geholfen. Selecting record date with selectInput in shiny RProbleme mit SelectInput in Shiny

Dies ist der Ui.R-Code: Ich bekomme die Namen in meinem SelectInput nicht.

library(shiny) 
ui<-fluidPage(
    titlePanel(title = "Prueba"), 
    sidebarLayout(
    sidebarPanel(
     fileInput('file1', 'Cargar archivo', 
       accept = c(
        'text/csv', 
        'text/comma-separated-values', 
        'text/tab-separated-values', 
        'text/plain', 
        '.csv', 
        '.tsv' 
       ) 
    ), 
     checkboxInput('header', '¿Contiene Encabezado?', TRUE), 
     radioButtons('sep', 'Delimitador', 
        c(Comma=',', 
        "Punto y coma"=';', 
        Tab='\t'), 
        ','), 
     radioButtons('quote', 'Quote', 
        c(Ninguna='', 
        'Dobles'='"', 
        'Simples'="'"), 
        '"'), 
     radioButtons('resume', 'Summary', 
        c('Individual', 
        'Múltiple'), 
        inline = TRUE), 
     conditionalPanel("input.resume === 'Individual'", 
         selectInput('xcol', 'Variable X', names("fileInput$file1"), 
            selected = names("fileInput$file1")[[1]]) 
         ) 
    ), 
    mainPanel(h3("Muestra del archivo cargado:"), 
       tableOutput('contents'), 
       verbatimTextOutput("summary") 
    ) 
) 
) 
+0

Sie die Datei in server.R lesen dann updateSelectInput() verwenden, die die Select Input – HubertL

Antwort

0

Dies ist ein Beispiel dafür, wie zu tun:

library(shiny) 
ui<-fluidPage(
    titlePanel(title = "Prueba"), 
    sidebarLayout(
    sidebarPanel(
     fileInput('file1', 'Cargar archivo', 
       accept = c(
        'text/csv', 
        'text/comma-separated-values', 
        'text/tab-separated-values', 
        'text/plain', 
        '.csv', 
        '.tsv' 
       ) 
    ),selectInput('xcol', 'Variable X', columns())), 
    mainPanel(h3("Muestra del archivo cargado:"), 
       tableOutput('contents'), 
       verbatimTextOutput("summary") 
    ) 
) 
) 
server <- function(input, output, session){ 
    columns <- reactive({ 
    df <- read.table(input$file1$datapath) 
    names(df) 
    }) 
    observe({ 
    if(!is.null(input$file1)) 
     updateSelectInput(session, "xcol", choices=columns())}) 
} 

shinyApp(ui, server) 
+0

Hallo @HubertL Dank zu aktualisieren. Deine Antwort hat mich dazu gebracht, das zu bekommen, was ich wollte. Ich habe einige Änderungen vorgenommen, weil ich einen Fehler mit den Parameterspalten() bekommen habe. – Jrgsua83

+0

Das ist mein Code: In der UI habe ich selectInput ('xcol', 'Variable X', "") Server <-Funktion (Eingabe, Ausgabe, Sitzung) { tableData <- reactive ({ inFile <- Eingabe $ file1 if (! is.null (inFile)) { read.csv (inFile $ Datenweg, header = Eingang $ header, sep = Eingang $ sep, quote = Eingang $ Zitat) } else { return (NULL) } }) beobachten ({ updateSelectInput ( Sitzung, "xcol", Auswahl = Namen (Table())) }) – Jrgsua83

Verwandte Themen