2016-06-30 24 views
1

Ich habe Probleme, die Daten von einer Matrix, die ich aus einer CSV-Datei gelesen habe, an eine andere Funktion zu übergeben.Zugriff auf einen Datenrahmen, der von read.csv aus einer anderen Funktion geladen wurde - R Shiny

Ich versuchte die Lösung here, Erstellen einer Hilfsdatenfunktion und Aufruf der Matrix mit data()$loadedMat.

Ich erhalte

Fehler: Objekt vom Typ 'Schließung' nicht

ist subsettable ich habe:

shinyServer(function(input, output, session) { 

    data <- reactive(function(){ 

     inFile <- input$file1 

     if (is.null(inFile)) 
     return(NULL) 

     loadedFile <- read.csv(inFile$datapath, 
           header=FALSE, 
           sep=input$sep, 
           quote=input$quote) 

     loadedDf <- loadedFile[2:nrow(loadedFile), ] 

     #figure out how to access loadedMat from another function 
     loadedMat <- as.matrix(loadedDf) 


    }) 

    output$result <- renderText({ 

      input$goButton 
      x <- someFunction(data()$loadedMat) 
    }) 
}) 
+1

Neudefinition 'Daten holen sollten () scheint eine schlechte Idee zu sein; Wählen Sie einen anderen Namen, oder Ihr Code wird wirklich verwirrend zu lesen. – alistaire

Antwort

3

Die reaktive Funktion data() nicht die "enthalten" Matrix loadedMat, ist es istloadedMat.

So würden Sie darauf zugreifen wie x <- someFunction(data())

Die Antwort, die Sie zu den Highlights verknüpfen, wie Sie Spalten aus der data.frame acccess würde.

Um auf Spalten eines data.frame zuzugreifen, würden Sie gehen data$column. Das gleiche gilt für den Blinddatenrahmen: data()$column


@ alistaire Kommentars erneuten Hinweis: Sie wahrscheinlich einen anderen Namen für Ihre Daten als data (wie data() ist bereits eine Funktion in R)