To może być podejście. I stworzył pakiet atrapa z manekina funkcji (dowolnej funkcji tworzę jest zobowiązany być obojętne funkcja) oraz zbioru danych nazwałem scores
że ustawiony następująco:
scores <- NA
Potem stworzył pakiet z wyników zbiór danych.
Wtedy stosuje się następującą zmianę zestawu danych od wewnątrz R.
loc <- paste0(find.package("new"), "/Data")
unlink(paste0(loc, "/scores.rda"), recursive = TRUE, force = FALSE)
scores <- 10
save(scores, file=paste0(loc, "/scores.rda"))
Wtedy kiedy wyładowane bibliotekę i ponownie załadowany AĢIN dane określone teraz mówi:
> scores
[1] 10
Czy może to być zmodyfikowany, aby robić to, co chcesz? Musiałbyś to zapisać między innymi, ale nie jestem pewien, jak to zrobić bez zakłócania działania funkcji .Last
.
EDIT:
Wydaje się, ta opcja nie jest opłacalne, że podczas kompilacji jako pakiet i korzystać leniwy załadować go ratuje zbiory danych jak:
RData.rbd, RData.rbx, nie jako pliki .rda. Oznacza to, że podejście, którego używam powyżej, jest bezwartościowe, ponieważ chcemy, aby było ono automatycznie rozpoznawane.
EDIT2 Podejście to działa i próbowałem go na opakowaniu zrobiłem. Nie możesz wykonać leniwego ładowania danych i musisz wyraźnie użyć data(scores)
lub użyć data(scores)
w funkcji, do której dzwonisz. Przypisałem również scores
do .scores
int on global.env przy pierwszym utworzeniu i użyciu exists
wewnątrz funkcji, aby sprawdzić, czy istnieje. Jeśli ".scores. Istniałem przypisałem to do wyników w funkcji. Po ponownym wczytaniu biblioteki i przywróceniu jej jeszcze raz nie musisz się już martwić.
Może alternatywą jest, aby zapisać to jako funkcję jakoś, które mogą być zmienione za pomocą porady Josha tutaj: Permanently replacing a function
Nie dla pakietu R per se, ale to jest dość typowe w świecie nix do przechowywania tego rodzaju rzeczy w ukrytym pliku lub ukrytym katalogu w katalogu domowym użytkowników. W oknach można użyć katalogu danych aplikacyjnych lub rejestru. – frankc
Ja sam miałem to samo pytanie, myślę, że klucz może znajdować się w tym wpisie SO tutaj: http://stackoverflow.com/questions/8661526/permanently-replacing-a-function –
"Ktoś zrobił grę i wypuścił ją jako pakiet R "<- Errror, nie parsuje się –