2017-04-11 4 views
0

OpenCPU Entwickler, Ich versuche OpenCPU zu verwenden, um benutzerdefinierte Funktionen Code auszuführen und mehr als ein Parameter zurückkehren wollen mit „Liste“. So etwas Ähnliches:OpenCPU Serialisierung bei Listenausgabe

result = list(x=data.frame(a),y=data.frame(b)) 
return (result) 

Es funktioniert gut, aber OpenCPU Verpackungs Ergebnis wie eine Variable (R/.var) und ich kann es nur wie JSON in separater Ansicht herunterladen. Serialisierung ist in diesem Fall sehr ineffizient:

{ 
    "x": [ 
    { "PC1": -0.0134, "PC2": -0.8164 } 
    , 
    { "PC1": -0.2206, "PC2": -0.6093 } 
    , 
    { "PC1": -1.0569, "PC2": -0.3061 } 
    ], 

    "y": [ 
    { "hp": 270, "qsec": 20.36 } 
    , 
    { "hp": 270, "qsec": 20.92 } 
    , 
    { "hp": 201, "qsec": 22.46 } 
    ] 
} 

Wenn Download wie CSV OpenCPU führt die Replikation von Skalare und kann keine Daten-Frames mit unterschiedlichen Zeilen Nummer verbinden.

Gibt es irgendeine Art und Weise $ x und $ y separat herunterladen? Noch mehr optimale Serialisierungsvorschläge?

Antwort

0

Da der R opencpu Server gleichzeitig die eingehende Anforderung ausführt, können Sie die Funktion in zwei Funktionen aufgeteilt, und feuern diese Funktionen gleichzeitig, die man geben $ x und die anderen $ y.

Gute Frage btw über Geschwindigkeit und Serialisierung ....

+0

Ja, Splitting, um mehrere Funktionen ist eine Option, aber leider ist nicht so bequem wie einfache Verpackung in der Liste. –

Verwandte Themen