2016-11-05 2 views
1

Ich verwende das R-Paket data.table, um mit großen Datendateien umzugehen. Allerdings habe ich festgestellt, dass es nicht mit opencpu verwendet werden kann.opencpu funktioniert nicht mit data.table in R

Zum Beispiel meine R-Funktion,

foo <- function() { 
    library(data.table) 
    iris = data.table(iris) 
    o = iris[,.N,Species] 
    return(list(o,dim(o))) 
    } 

und ich versuchte zu ocpu.call diese Funktion ausgeführt wird,

var req = ocpu.call("hello",{}, 
    function(session){ 
    console.log(session) 
    }); 

Und wenn ich die Sitzung prüfen, das Ergebnis ausgegeben ist

[[1]] 
Null data.table (0 rows and 0 cols) 

[[2]] 
[1] 0 0 

So können Sie sehen, dass opencpu nicht verwendet werden kann mit R-Paket, data.table.

Ich frage mich, ob das stimmt oder ich gerade etwas hier verpasst habe?

+0

Ich habe sogar http://jsfiddle.net/opencpu/7torLdk9/ überprüft. Es funktioniert gut, aber nicht lokal. Ich kann den Grund nicht herausfinden .. – user7117436

Antwort

0

opencpu indem Ajax/Client-Zugriff auf R-Pakete in einem Server des R-Bibliothek Standort arbeitet, so in Ihrem Namensraum-Datei des benutzerdefinierten Pakets, stellen Sie sicher, dass diese Linien gibt es

export(my_custom_function_name) 
import(data.table) 

Der Export() Zeile sollte bereits sei da drin. Sie sollten auch die explizite Namespace-Syntaxkonvention "data.table :: data.table (example_df)" in Ihren R-Funktionen verwenden.

Ich bin neugierig, warum der Import() erforderlich ist (von opencpu?), Aber ich bin neu in R-Paket-Entwicklung. Ich merke this öffentlichen Beispiel von der opencpu öffentlichen App Seite verwendet Import (ggplot2). Für Namespaces war this hilfreich.