2013-03-04 9 views
11

Jeśli zdefiniuję funkcję w R, mogę zapisać obiekt funkcji za pomocą funkcji składowania. Następnie mogę załadować ten obiekt funkcji za pomocą funkcji load i użyć go bezpośrednio. Jednakże, jeśli mam funkcję rcpp, i jeśli próbuję zapisać skompilowaną wersję i załadować ją z powrotem do pamięci, nie mogę już używać tego obiektu funkcji bezpośrednio. Czy to możliwe? Powodem, dla którego pytam, jest to, że kompilowanie funkcji zajmuje trochę czasu i jeśli istnieje sposób na uniknięcie tego kosztu za każdym razem, gdy uruchomię środowisko R, będzie to świetne. Dzięki!Rcpp: Zapisz skompilowaną funkcję jako Robj

Odpowiedz

12

Nie, ogólnie nie można szeregować (a tym samym zapisywać) funkcji skompilowanej z cxxfunction() lub sourceCpp(). Musisz ją skompilować, chyba że umieścisz ją w paczce. Dlatego właśnie pakiety to sposób na zainstalowanie skompilowanego kodu poza szybkim eksperymentowaniem.

+2

Przyjemność. Możesz wybrać opcję "zaakceptuj" tę odpowiedź, wybierając znacznik wyboru tylko Ty jako osobę, która go widzi. –