2013-03-04 8 views
11

Wenn ich eine Funktion in R definiere, kann ich das Funktionsobjekt mit der Speicherfunktion speichern. Dann kann ich dieses Funktionsobjekt mit der Ladefunktion laden und direkt verwenden. Wenn ich jedoch eine rcpp-Funktion habe und versuche, die kompilierte Version zu speichern und in den Speicher zurück zu laden, kann ich dieses Funktionsobjekt nicht mehr direkt verwenden. Ist das überhaupt möglich? Der Grund, warum ich frage, ist, weil es eine Weile dauert, die Funktion zu kompilieren, und wenn es eine Möglichkeit gibt, diese Kosten jedes Mal zu vermeiden, wenn ich eine R-Umgebung starte, wird das großartig. Vielen Dank!Rcpp: Kompilierte Funktion als Robj speichern

Antwort

12

Nein, im Allgemeinen können Sie eine mit oder sourceCpp() kompilierte Funktion nicht serialisieren (und daher speichern). Sie müssen es neu kompilieren, es sei denn, Sie legen es in ein Paket. Aus diesem Grund sind Pakete der Weg, um Ihren kompilierten Code über das schnelle Experimentieren hinaus zu installieren.

+2

Vergnügen. Sie können diese Antwort "annehmen", indem Sie das Häkchen nur für Sie auswählen, wenn die Person fragt, die es sieht. –